自定义布局处理
private View customTabView(String content,int imgId){ View tabView = LayoutInflater.from(getContext()).inflate(R.layout.community_coustom_tab_view,null,false); ImageView tabImg = tabView.findViewById(R.id.custom_tab_img); TextView tabTxt = tabView.findViewById(R.id.custom_tab_content); tabImg.setImageResource(imgId); tabTxt.setText(content); return tabView; }
使用方法
mCommunityTab.addTab(mCommunityTab.newTab().setCustomView(customTabView("tab1",R.drawable.tab_fire))); mCommunityTab.addTab(mCommunityTab.newTab().setCustomView(customTabView("tab2",R.drawable.tab_user)));
mCommunityTab.addTab(mCommunityTab.newTab()); mCommunityTab.addTab(mCommunityTab.newTab()); initVP(); mCommunityTab.setupWithViewPager(mCommunityFrgVp); mCommunityTab.getTabAt(0).setCustomView(customTabView(R.string.tab_one, R.drawable.tab_fire)); mCommunityTab.getTabAt(1).setCustomView(customTabView(R.string.tab_two, R.drawable.tab_user));不用再adapter中重写
CharSequence 方法
@Nullable @Override public CharSequence getPageTitle(int position) { return super.getPageTitle(position); }代码
mCommunityTab.addTab(mCommunityTab.newTab()); mCommunityTab.addTab(mCommunityTab.newTab()); initVP(); mCommunityTab.setupWithViewPager(mCommunityFrgVp); mCommunityTab.getTabAt(0).setCustomView(customTabView(R.string.tab_one, R.drawable.tab_fire)); mCommunityTab.getTabAt(1).setCustomView(customTabView(R.string.tab_two, R.drawable.tab_user)); } private void initVP() { List<Fragment> frgs = new ArrayList<>(); frgs.add(RecommendFrg.getInstance()); frgs.add(DynamicFrg.getInstance()); RecmPageAdapter vp = new RecmPageAdapter(mActivity.getSupportFragmentManager(),frgs); mCommunityFrgVp.setAdapter(vp); }
adapter代码
public class RecmPageAdapter extends FragmentPagerAdapter { private List<Fragment> frgs; public RecmPageAdapter(FragmentManager fm,List<Fragment> frgs) { super(fm); this.frgs = frgs; } @Override public Fragment getItem(int position) { return frgs.get(position); } @Override public int getCount() { return frgs.size(); } }
在
AppBarLayout布局里面添加
android:fitsSystemWindows="true"属性
可以滑动的布局设置
app:layout_scrollFlags="scroll"属性
toolbar因为要固顶在顶部不需要设置
效果图