1.先看效果图
2.代码。可以有多种方法实现,这里为了图方便,省事,不进行反射,个人觉得反射没必要。代码写法多种,这里列举两种。供参考(切记要add之后设置)
mTabLayout.postDelayed(new Runnable() { @Override public void run() { try { LinearLayout childAt = (LinearLayout) mTabLayout.getChildAt(0); for (int j = 0; j < childAt.getChildCount(); j++) { //这里为0跟字体宽度一样,可以加长 childAt.getChildAt(j).setPadding(0, 0, 0, 0); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) childAt .getChildAt(j).getLayoutParams(); //为了对称,可以判断j=0时设置向左间距 //向右间距 layoutParams.rightMargin = DisplayUtil.dp2px(ProjectListActivity.this, 15); } }catch (Exception e){ e.printStackTrace(); } }},200);
2.
ViewTreeObserver vto = mTabLayout.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { mTabLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this); try { LinearLayout childAt = (LinearLayout) mTabLayout.getChildAt(0); for (int j = 0; j < childAt.getChildCount(); j++) { childAt.getChildAt(j).setPadding(0, 0, 0, 0); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) childAt.getChildAt(j).getLayoutParams(); layoutParams.rightMargin = DisplayUtil.dp2px(ProjectListActivity.this, 15); } }catch (Exception exception){ exception.printStackTrace(); } } });