android–ViewPager里面的Fragment

android–ViewPager里面的Fragment,第1张

概述我正在尝试使用新的Android支持设计库将一个viewpager添加到一个片段.我有布局的xml代码,如下所示:<?xml version='1.0' encoding='utf-8'?> <android.support.design.widget.CoordinatorLayout xmlns:android='http://sche

我正在尝试使用新的Android支持设计库将一个vIEwpager添加到一个片段.我有布局的xml代码,如下所示:

相应的java类如下:

public class Tracks extends Fragment {    ViewPager viewPager;    TabLayout tabLayout;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.tracks,container,false);        viewPager = (ViewPager) view.findViewById(R.id.viewpager);        tabLayout = (TabLayout) view.findViewById(R.id.tabLayout);        AppCompatActivity activity = (AppCompatActivity) getActivity();        assert activity.getSupportActionBar() != null;        activity.getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.app_theme)));        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        setupViewPager(viewPager);        tabLayout.setupWithViewPager(viewPager);        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {            @Override            public void onTabSelected(TabLayout.Tab tab) {            }            @Override            public void onTabUnselected(TabLayout.Tab tab) {            }            @Override            public void onTabReselected(TabLayout.Tab tab) {            }        });    }    private void setupViewPager(ViewPager viewPager) {        ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager());        viewPagerAdapter.addFragment(new TopTracks(),"Top Tracks");        viewPagerAdapter.addFragment(new WorldCharts(),"World Charts");        viewPagerAdapter.addFragment(new NewMusic(),"New Music");        viewPagerAdapter.addFragment(new AfricaHot(),"Africa Hot");        viewPagerAdapter.addFragment(new Playlists(),"Playlists");        viewPagerAdapter.addFragment(new Recommended(),"Recommended");        viewPager.setAdapter(viewPagerAdapter);    }    private class ViewPagerAdapter extends FragmentPagerAdapter {        List

viewpager工作正常,除了我的标签不会显示的事实.我得到的是以下屏幕:

我已多次浏览代码,但我似乎仍然无法解决我的代码有什么问题

最佳答案这是与VIEwCompat相关的设计支持库的常见错误.

@OverrIDepublic voID onActivityCreated(@Nullable Bundle savedInstanceState) {    super.onActivityCreated(savedInstanceState);    setupVIEwPager(vIEwPager);    // after you set the adapter you have to check if vIEw is laID out,i dID a custom method for it    if (VIEwCompat.isLaIDOut(tabLayout)) {        setVIEwPagerListener();    } else {        tabLayout.addOnLayoutchangelistener(new VIEw.OnLayoutchangelistener() {           @OverrIDe           public voID onLayoutChange(VIEw v,int left,int top,int right,int bottom,int oldleft,int oldtop,int oldRight,int oldBottom) {                setVIEwPagerListener();                tabLayout.removeOnLayoutchangelistener(this);           }       });    }}private voID setVIEwPagerListener() {    tabLayout.setupWithVIEwPager(vIEwPager);    // use class TabLayout.VIEwPagerOnTabSelectedListener    // note that it's a class not an interface as OnTabSelectedListener,so you can't implement it in your activity/fragment    // methods are optional,so if you don't use them,you can not overrIDe them (e.g. onTabUnselected)    tabLayout.setonTabSelectedListener(new TabLayout.VIEwPagerOnTabSelectedListener(vIEwPager) {        @OverrIDe        public voID onTabReselected(TabLayout.Tab tab) {            super.onTabReselected(tab);        }        @OverrIDe        public voID onTabSelected(TabLayout.Tab tab) {            super.onTabSelected(tab);        }    });}
总结

以上是内存溢出为你收集整理的android – ViewPager里面的Fragment全部内容,希望文章能够帮你解决android – ViewPager里面的Fragment所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1149711.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)