2013-05-13 68 views
3

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

回答

0

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

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

我有同样的问题,但这个回复显示的代码太少,无法理解。我应该使用哪种方法编码?我如何获得mTabsAdapter和mTabHost实例? – 2014-01-22 09:22:04

0

据“材料设计”的最佳实践,在标签布局模式是文本或图像/文本。 但是,如果你真的想这样做:

/RES /布局创建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;