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