3

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

4

2 回答 2

1

根据“Material Design”的最佳实践,在选项卡布局上,模式是文本或图像/文本。 但如果你真的想这样做:

/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;
于 2016-07-25T02:29:43.500 回答
0

您可以FragmentPagerAdapter像这样设置选项卡:

mTabsAdapter.addTab(mTabHost.newTabSpec("your_fragment_tag").setIndicator("Tab Text", 
            res.getDrawable(R.drawable.tab_icon)),
            YourFragment.class, null);
于 2013-05-13T17:07:55.043 回答