Android - 自定义Tablayout + ViewPager(设置可滑动)
1、创建TabFragment主要把Viepager添加进去但是这里是否需要Viewpager滑动要去重写ViewPager去控制(代码下面)
public class TabFragment extends RelativeLayout {
public Context context;
private BasicConfiguration basicConfiguration;
public TabFragment(Context context) {
super(context);
}
public TabFragment(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
}
public void setData(BasicConfiguration basicConfiguration) {
this.basicConfiguration = basicConfiguration;
initView(basicConfiguration);
}
public BasicConfiguration getData() {
if (basicConfiguration == null) {
basicConfiguration = new BasicConfiguration();
}
return basicConfiguration;
}
private void initView(BasicConfiguration basicConfiguration) {
View tabFragment = LayoutInflater.from(context).inflate(R.layout.layout_tabfragment, this, false);
CustomViewPager tabFragment_viewpager = tabFragment.findViewById(R.id.tabFragment_viewpager);
tabFragment_viewpager.setOverScrollMode(OVER_SCROLL_NEVER);
LinearLayout tabFragment_bottomRoot = tabFragment.findViewById(R.id.tabFragment_bottomRoot);
tabFragment_viewpager.setViewPagerState(basicConfiguration.isViewPagerIsScroll());
PagerAdapter pagerAdapter = new PagerAdapter();
tabFragment_viewpager.setAdapter(pagerAdapter);
if (basicConfiguration.getLimitPage() != -1){
tabFragment_viewpager.setOffscreenPageLimit(basicConfiguration.getLimitPage());
}
if (basicConfiguration.getTabHeight() != -1) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) tabFragment_bottomRoot.getLayoutParams();
layoutParams.height = Dp2Px(basicConfiguration.getTabHeight());
tabFragment_bottomRoot.setLayoutParams(layoutParams);
}
if (basicConfiguration.getTabBgColor() != -1) {
tabFragment_bottomRoot.setBackgroundResource(basicConfiguration.getTabBgColor());
}
if (basicConfiguration.getPageData().size() > 0) {
for (BasicConfiguration.TabPageData page : basicConfiguration.getPageData()) {
View tabItem = LayoutInflater.from(context).inflate(R.layout.layout_tabitem, tabFragment_bottomRoot, false);
ImageView tabImage = tabItem.findViewById(R.id.tabImage);
TextView tabTitle = tabItem.findViewById(R.id.tabTitle);
if (basicConfiguration.getImageDimension() != -1) {
tabImage.setLayoutParams(new LinearLayout.LayoutParams(Dp2Px(basicConfiguration.getImageDimension()),Dp2Px(basicConfiguration.getImageDimension())));
}
tabTitle.setText(TextUtils.isEmpty(page.getTabTitle()) ? "" : page.getTabTitle());
if (page.isShowCurrentPage()) {
tabImage.setImageResource(page.getSelectImage());
tabTitle.setTextColor(basicConfiguration.getTitleSelectColor());
} else {
tabImage.setImageResource(page.getUnSelectImage());