
我正在尝试使用新的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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)