我有一個問題與值傳遞給我的課:通價值尋呼機片段
public class FragmentViewPager extends Fragment {
public static int p;
private FragmentPagerItemAdapter adapter;
private static final String TAG = "log";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_view_pager, container, false);
adapter = new FragmentPagerItemAdapter(
getChildFragmentManager(), FragmentPagerItems.with(getActivity())
.add("1", AnimalsFragment.class)
.add("2", AnimalsFragment.class)
.add("3", AnimalsFragment.class)
.add("4", AnimalsFragment.class)
.add("5", AnimalsFragment.class)
.create());
ViewPager viewPager = (ViewPager) view.findViewById(R.id.viewpager);
viewPager.setAdapter(adapter);
SmartTabLayout viewPagerTab = (SmartTabLayout) view.findViewById(R.id.viewpagertab);
viewPagerTab.setViewPager(viewPager);
// определяем позицию фрагмента
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
@Override
public void onPageSelected(int position) {
p = position;
}
@Override
public void onPageScrollStateChanged(int state) {}
});
return view;
}
}
我得到的值:
public class AnimalsFragment extends Fragment implements View.OnClickListener {
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_animals, container, false);
// получаем позицию фрагмента
position = FragmentViewPager.p;
Log.i(TAG, "position = " + position);
...
日誌:
I/log: position = 1
I/log: position = 2
I/log: position = 3
有5個片段中,不顯示第一個「0」和最後一個「4」。 但是,如果您在方法onPageSelected()日誌中放置日誌顯示正確。 如何正確傳達班級中的分頁值?
請發表您的代碼,包括PagerAdapter –
添加完整的代碼 – user233804