巧妙均分TabLayout tab
16lz
2021-01-23
/** * 均分TabLayout tab * 利用LinearLayout weight 特性, android.support.design.widget.TabLayout#updateTabViewLayoutParams(android.widget.LinearLayout.LayoutParams) */ public static void splitTabLayout(final TabLayout tabLayout) { if (ViewUtil.isNull(tabLayout) || tabLayout.getTabCount() < 2) { return; } tabLayout.setVisibility(View.INVISIBLE); if (tabLayout.getTabMode() != TabLayout.MODE_FIXED || tabLayout.getTabGravity() != TabLayout.GRAVITY_FILL) { return; } tabLayout.post(new Runnable() { @Override public void run() { int tabCount = tabLayout.getTabCount(); int measuredWidth = tabLayout.getMeasuredWidth(); if (measuredWidth <= 0) { tabLayout.setVisibility(View.VISIBLE); return; } int marginOffset = measuredWidth / tabCount / 4; ViewGroup.LayoutParams layoutParams = tabLayout.getLayoutParams(); if (layoutParams instanceof ViewGroup.MarginLayoutParams) { ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) layoutParams; marginLayoutParams.leftMargin = marginOffset; marginLayoutParams.rightMargin = marginOffset; tabLayout.setLayoutParams(layoutParams); //Log.debug(TAG, "splitTabLayout: " + marginOffset); } tabLayout.setVisibility(View.VISIBLE); } }); }
更多相关文章
- Android O新特性系列
- Android 4.4 新特性分析-15项大改进!
- Android平台架构及特性(1)
- Android P新特性:强制执行 FLAG_ACTIVITY_NEW_TASK 要求
- Android4.1(Jelly Bean)API新特性尝鲜
- Android 1.6 关于SD卡的新特性
- android kitkat(4.4以上)各个版本的特性解析
- android开发笔记之2012版辅助开发工具包(ADT)新功能特性介绍及安装
- 有关Material Design新特性的详解。