![5b9607f30001734305200616.jpg](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC)
1. 实现底部的Tab,自定义TabContainerView 继承 RelativeLayout,这是我们最终封装的View工具类。其内部主要由viewpager和底部的TabHost类组成。 ViewPager初始化 contentViewPager = new ViewPager(context);
LayoutParams contentVpLp = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
contentVpLp.addRule(RelativeLayout.ABOVE, R.id.divide_tab);
contentViewPager.setLayoutParams(contentVpLp);
contentViewPager.setId(R.id.viewpager_tab);
contentViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
} · @Override
public void onPageSelected(int position) {
tabHost.onChangeTabHostStatus(position);
Tab selectedTab = tabHost.getTabForIndex(position); if (onTabSelectedListener != null && selectedTab != null) onTabSelectedListener.onTabSelected(selectedTab);
} @Override
public void onPageScrollStateChanged(int state) {
}
});
addView(contentViewPager);底部Tab是一个自定义的横向布局LinearLayout,动态添加多个宽度等分的Tab按钮 for (int i = 0; i |