Android自定义FragmentPagerAdapter的外观

时间:2013-05-13 16:28:33

标签: android android-fragments

我有一个基于Fragment的应用程序,其子类FragmentPagerAdapter管理片段。我想在PagerAdapter中为标签设置自定义图像,但是在API中没有看到任何执行此操作的方法。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可以像FragmentPagerAdapter一样设置标签:

mTabsAdapter.addTab(mTabHost.newTabSpec("your_fragment_tag").setIndicator("Tab Text", 
            res.getDrawable(R.drawable.tab_icon)),
            YourFragment.class, null);

答案 1 :(得分:0)

根据“材质设计”的最佳做法,在标签布局上,图案为文字或图片/文字。 但如果你真的想要这样做:

/ res / layout 上创建 custom_layout.xml

CustomFragmentPagerAdapter 上创建视图

 public View getTabView(int position) {
    View v = LayoutInflater.from(context).inflate(R.layout.custom_tab, null);

    ImageView imgTabIcon = (ImageView) v.findViewById(R.id.imgTabIcon);
    TextView tvTabTitle = (TextView) v.findViewById(R.id.tvTabTitle);
    TextView tvTabAmount = (TextView) v.findViewById(R.id.tvTabAmount);

    imgTabIcon.setImageResource(imageResId[position]);
    tvTabTitle.setText(tabTitles[position]);
return v;

片段

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_custom_tabs, container, false);

    viewPager = (ViewPager) rootView.findViewById(R.id.viewpager);
    CustomFragmentPagerAdapter pagerAdapter = new CustomFragmentPagerAdapter(
            getActivity().getSupportFragmentManager(), getActivity());
    viewPager.setAdapter(pagerAdapter);

    tabLayout = (TabLayout) rootView.findViewById(R.id.sliding_tabs);
    tabLayout.setupWithViewPager(viewPager);
    for (int i = 0; i < tabLayout.getTabCount(); i++) {
        TabLayout.Tab tab = tabLayout.getTabAt(i);
        tab.setCustomView(pagerAdapter.getTabView(i));
    }
return rootView;