ViewPager阻止Fragment的View的OnClickListeners

时间:2016-08-11 05:59:27

标签: android android-viewpager onclicklistener

我目前在标签布局中有一个视图寻呼机

//Get the ViewPager and set it's PagerAdapter so that it can display items
    ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    viewPager.setAdapter(new SettingsFragmentPagerAdapter(getSupportFragmentManager()));

    //Give the TabLayout the ViewPager
    TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
    tabLayout.setupWithViewPager(viewPager);

然后视图分页器中的片段具有附加了OnClickListeners的TextViews

final TextView zSemTxt = (TextView) getActivity().findViewById(R.id.zSemTxt);
        zSemTxt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mSelectedTextView = zSemTxt;
                showDialogToSelectClass();
            }
        });

我的问题是永远不会调用OnClickListeners,看起来所有触摸都会转到ViewPager,并且永远不会进入TextViews。我尝试过像viewPager.requestDisallowInterceptTouchEvent(true);但它没有任何改变。 想法?

2 个答案:

答案 0 :(得分:0)

显示更多代码。

可能因为textview = null而无法正常工作。

final TextView zSemTxt = (TextView) getActivity().findViewById(R.id.zSemTxt);

你确定吗?

我看不到你的代码,但试试

final TextView zSemTxt = (TextView) view.findViewById(R.id.zSemTxt);

其中查看是您的片段膨胀视图。

答案 1 :(得分:0)

原来既没有在片段上调用onActivityCreated或onCreateView。 解决方案是转到我用来管理ViewPager显示哪个片段的PageFragment类,并将onClickListeners添加到那里。片段在那里被充气,这就是为什么其他类从未被调用过的原因。