我正在使用android工作室。 并使用ViewPager和几个片段。 但是片段的“OnCreateView”,“OnResume”被调用,尽管它没有在ViewPager中被选中。 我不知道如何才能发现这些事件。 谢谢。
答案 0 :(得分:0)
我不确定“检测这些事件”是什么意思。
然而,ViewPager将创建屏幕上的当前片段,以及当前片段之前和之后的片段 - 如果用户滑动它们会立即显示,那么这就是如此。
例如:如果Viewpager的当前位置为2,则将创建片段1和片段3。
您可以通过调用:
来自定义此行为 myViewPager.setOffscreenPageLimit(NUM_ITEMS-1);
答案 1 :(得分:0)
您可以通过以下代码解决此问题:
Java代码:
// viewpager
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
// tab layout setup
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setTabTextColors(ColorStateList.valueOf(Color.WHITE));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setupWithViewPager(viewPager);
setupViewPager方法:
private void setupViewPager(ViewPager viewPager)
{
ViewPagerAdapter viewPagerAdapter=new ViewPagerAdapter(getSupportFragmentManager());
viewPagerAdapter.addFragment(new Request(), "one");
viewPagerAdapter.addFragment(new Open(),"Two");
viewPagerAdapter.addFragment(new Closed(),"Three");
viewPager.setAdapter(viewPagerAdapter);
}
XML代码:
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/MyCustomTabLayout"
app:tabIndicatorColor="@android:color/white"
app:tabMode="fixed"
app:tabGravity="fill"
/>