2011-06-20 48 views
0

我有一個RelativeLayout包含WebViewListView(ListViewContainer鏈接在網頁視圖點擊是ListView控件的子類:沒有嵌入ViewGroup中,如果別的孩子有

public AdListViewContainer(Context context, ServiceLookup lookup, MarketList list, Registry registry, BitmapCache bitmapCache, Utilities utilities, ActionFlipper flipper) { 
    super(context); 

    mScale = getContext().getResources().getDisplayMetrics().density; 
    final int orientation = getResources().getConfiguration().orientation; 

    setClickable(true); 
    if (orientation == Configuration.ORIENTATION_PORTRAIT) { 
     mAd = new WebView(context); 
     mAd.setId(1234); 
     mAd.setWebViewClient(new AdListWebClient()); 
     mAd.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       Log.d (TAG, "Inner Event " + event.getAction()); 
       return false; 
      } 
     }); 
     mAd.getSettings().setJavaScriptEnabled(true); 

     RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT); 

     lp.addRule(ALIGN_PARENT_BOTTOM, 1); 
     addView(mAd, lp); 
    } 
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT); 
    if (mAd != null) { 
     lp.addRule(ALIGN_BOTTOM, mAd.getId()); 
    } 
    mListContainer = new ListViewContainer(context, lookup, list, registry, bitmapCache, utilities, flipper); 
    addView(mListContainer, lp); 
} 

的WebView是顯示所產生的廣告通過Adition,基本上是一個標籤中的img標籤

我遇到的問題是無法點擊廣告,WebView沒有收到任何觸摸或點擊事件當我刪除ListView和WebView是ViewGroup的唯一孩子(通過removi在最後的addView調用),廣告是可點擊的,一切都很好。

ListViewContainerListView的一個簡單的子類,它包含一個可點擊的LinearLayouts負載。

任何幫助表示讚賞!

+0

有趣的是,如果我使用軌跡球手動聚焦web視圖,點擊軌跡球將打開鏈接的網頁。但即使專注,我仍然無法點擊觸摸屏上的廣告。 –

回答

0

好的,我發現了這個問題。 ListView與WebView重疊,由使用ALIGN_BOTTOM而不是ABOVE引起。 D'哦。 HierarchyViewer在尋找這個過程中是一個爆炸。

0

我重寫了WebView的OnTouchEvent,並將WebView放入FrameLayout中,填充它,然後將所需的所有內容放在webview上。非常棒!

相關問題