我有RelativeLayout
,其中包含WebView
和ListView
(ListViewContainer是ListView的子类:
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生成的广告,基本上是a-tag中的img-tag。
我遇到的问题是广告无法点击。 WebView未收到任何触摸或单击事件。当我删除ListView并且WebView是ViewGroup的唯一子节点时(通过删除最后一个addView调用),广告是可点击的,一切都很好。
ListViewContainer
是ListView
的简单子类,包含大量可点击的LinearLayouts。
任何帮助表示赞赏!
答案 0 :(得分:0)
好的,我发现了这个问题。 ListView与WebView重叠,这是由使用ALIGN_BOTTOM而不是ABOVE引起的。 D'哦。 HierarchyViewer发现了这一点。
答案 1 :(得分:0)
我为Webview覆盖了OnTouchEvent,并将WebView放在FrameLayout中,填充它,然后将我需要的所有内容放在webview之上。工作得很好!