Как работать со сменными вкладками с нижней навигацией

Привет, я пытался использовать ударную вкладку с нижней панелью навигации, но при повторном выборе вкладки не хватает и ничего не показывает. Я называю фрагменты вкладок смахивания от фрагмента нижней панели. Это мой код

    public class WalletFragment extends Fragment {
    private ViewPager viewPager;
    private WalletTabsAdapter mAdapter;
    PagerSlidingTabStrip wallettabs;
    // Tab titles

    public static WalletFragment newInstance(int instance) {
        Bundle args = new Bundle();
        args.putInt("input", instance);
        WalletFragment fragment = new WalletFragment();
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_wallet, container, false);
        // Initilization
        viewPager = (ViewPager) rootView.findViewById(R.id.walletpager);
        wallettabs = (PagerSlidingTabStrip) rootView.findViewById(R.id.wallettabs);
        mAdapter = new WalletTabsAdapter(getFragmentManager());
        viewPager.setAdapter(mAdapter);
        wallettabs.setViewPager(viewPager);
        /**
         * on swiping the viewpager make respective tab selected
         * */
        return rootView;
    }
}

3 ответа

Использование getChildFragmentManager() вместо getFragmentManager(), Смотри viewpager ничего не показывал после смены нижнего меню навигации. Я пробовал, и это отлично работает

Попробуй с этим

viewPager = (ViewPager) rootView.findViewById(R.id.walletpager);
    wallettabs = (PagerSlidingTabStrip) rootView.findViewById(R.id.wallettabs);
    mAdapter = new WalletTabsAdapter(getFragmentManager());
    viewPager.setAdapter(mAdapter);
    wallettabs.setViewPager(viewPager);
    viewPager.setOffscreenPageLimit(2); // add this line

Если есть родительский вид пейджер для нижней навигации, то вы также можете использовать это

parrentViewPager.setOffscreenPageLimit(4);

У меня тоже была эта проблема. Моя проблема была в том, что у меня было два ViewPagerНаходятся на двух разных вкладках BottomNavigation, и оба они содержат ViewPager в макете:

 <android.support.v4.view.ViewPager
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

После того, как я изменил идентификатор одного из них, чтобы дифференцировать, это работало!

 <android.support.v4.view.ViewPager
        android:id="@+id/container2" <!-- Changed ID -->
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
Другие вопросы по тегам