我正在使用android studio。 并将 ViewPager 与多个 fragment 一起使用。 但是 fragment 的“OnCreateView”、“OnResume”被调用,尽管它没有在ViewPager中被选择。 我不确定如何检测这些事件。 谢谢。
最佳答案
您可以通过以下代码简单地解决这个问题:
Java代码:
// viewpager
viewPager = (ViewPager) findViewById(R.id.viewpager);
ViewPagerAdapter viewPagerAdapter=new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(viewPagerAdapter);
// 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);
地点:
public class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int position) {
if(position == 0) return new Request();
if(position == 1) return new Open();
if(position == 2) return new Closed();
throw new IllegalStateException("Unexpected position " + position);
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
if(position == 0) return "One";
if(position == 1) return "Two";
if(position == 2) return "Three";
throw new IllegalStateException("Unexpected position " + position);
}
}
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"
/>
关于java - 如何解决 ViewPager 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43001766/