TabLayout的不同选项卡宽度

Dor*_*tan 13 android android-layout android-fragments android-viewpager android-tablayout

我正在使用TabLayout和ViewPager.我正在尝试更改Tab的大小,如Whatsapp(相机图标).三个标签的大小相等,但相机的标签较小.在每次尝试中,我都会使Tabs的大小保持不变(在所有选项卡中相等).谢谢.

在此输入图像描述

小智 22

您需要降低相应选项卡的LinearLayout的权重.

LinearLayout layout = ((LinearLayout) ((LinearLayout) tabLayout.getChildAt(0)).getChildAt(YOUR_TAB_NUMBER));
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) layout.getLayoutParams();
layoutParams.weight = YOUR_WEIGHT; // e.g. 0.5f
layout.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!


sem*_*mir 6

@digger的答案有效。但是,如果您希望带有图标的选项卡仅包装其内容,则可以将粗细设置为0,将宽度设置为LinearLayout.LayoutParams.WRAP_CONTENT。它为我工作。

fun TabLayout.setTabWidthAsWrapContent(tabPosition: Int) {
    val layout = (this.getChildAt(0) as LinearLayout).getChildAt(tabPosition) as LinearLayout
    val layoutParams = layout.layoutParams as LinearLayout.LayoutParams
    layoutParams.weight = 0f
    layoutParams.width = LinearLayout.LayoutParams.WRAP_CONTENT
    layout.layoutParams = layoutParams
}
Run Code Online (Sandbox Code Playgroud)