简体   繁体   English

如何使用底部导航的可滑动选项卡

[英]How to work with swipable tabs with bottom navigation

在此处输入图片说明

Hi, I have been trying to use swipe tab with bottom navigation bar, but on re-selection of tab swipe lacks and nothing shows. 嗨,我一直在尝试使用底部导航栏的滑动选项卡,但是重新选择选项卡时却没有滑动并且什么都没显示。 I am calling fragments of swipe tabs from bottom bar fragment. 我正在从底部栏片段中调用滑动选项卡的片段。 This is my code 这是我的代码

    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;
    }
}

Use getChildFragmentManager() instead of getFragmentManager() . 使用getChildFragmentManager()代替getFragmentManager() See viewpager didnt show anything after change bottom navigation menu . 更改底部导航菜单后,请参阅viewpager未显示任何内容 I've tried it and it work perfectly 我已经尝试过了,并且效果很好

Try with this 试试这个

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

It there is parent view pager for bottom navigation then you can also use this 它有用于底部导航的父视图传呼器,那么您也可以使用它

parrentViewPager.setOffscreenPageLimit(4);

I had that problem too. 我也有这个问题。 My problem was that I had two ViewPager s in two different tabs of BottomNavigation and they both contained ViewPager in layout: 我的问题是我在ViewPager的两个不同选项卡中有两个ViewPager ,并且它们都在布局中包含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" />

After I change the ID of one of them to differentiate, it worked! 在更改其中一个的ID以进行区分之后,它起作用了!

 <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" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM