2013-05-13 69 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;