巧妙均分TabLayout tab
16lz
2021-12-04
/** * 均分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的NDK开发(2)————利用Android(安卓)NDK编写一个简单
- 用CSS3生成的一个漂亮的android客户端页面
- 利用html5开发android(转载)
- Android利用Fiddler进行网络数据抓包
- 我的Android进阶之旅------>Android利用温度传感器实现带动画效
- Android(安卓)O新特性系列
- Android利用Fiddler进行网络数据抓包
- 利用HTML5开发Android
- 五大布局-----FrameLayout帧布局