Нет ссылок, которые можно активировать в WebView, встроенных в ViewGroup, если есть другие дочерние элементы - PullRequest
0 голосов
/ 20 июня 2011

У меня есть 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 показывает созданное объявлениеby Adition, в основном это img-tag в a-tag.

Проблема, с которой я столкнулся, заключается в том, что на объявление нельзя нажимать. WebView не получает события касания или нажатия. При удалении ListViewи WebView является единственным дочерним элементом ViewGroup (удаляя последний вызов addView), объявление кликабельно, и все в порядке.

ListViewContainer - это простой подкласс ListView, который содержит загрузкуClickar LinearLayouts.

Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 18 августа 2011

Я переопределил OnTouchEvent для веб-просмотра и поместил веб-вид внутрь FrameLayout, заполнив его, а затем поместил все остальное, что мне было нужно, поверх веб-просмотра. Работает отлично!

0 голосов
/ 20 июня 2011

Хорошо, я нашел проблему.ListView перекрывал WebView, вызванный использованием ALIGN_BOTTOM вместо ABOVE.D'Oh.HierarchyViewer был взрывом в поиске этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...