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();
}
}
});
本文介绍两种不同的方法来调整Android中TabLayout子项的间距,包括使用postDelayed和ViewTreeObserver来实现更美观的布局效果。
2950

被折叠的 条评论
为什么被折叠?



