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