Kotlin:如何区分TabLayout中的TabItem宽度?

vohkndzv  于 2023-01-09  发布在  Kotlin
关注(0)|答案(1)|浏览(121)

我有三个窃听器的密码如下。

<com.google.android.material.tabs.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_alignParentBottom="true"
            android:elevation="5dp"
            app:tabMaxWidth="0dp"
            app:tabGravity="fill"
            app:tabIndicatorColor="@color/main_color">

            <com.google.android.material.tabs.TabItem
                android:id="@+id/myDiaryTab"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="내 일기" />
            
            <com.google.android.material.tabs.TabItem
                android:id="@+id/allDiaryTab"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="우리 일기" />

            <com.google.android.material.tabs.TabItem
                android:id="@+id/moreTab"
                android:layout_width="20dp"
                android:layout_height="wrap_content"
                android:icon="@drawable/ic_hamburger" />

        </com.google.android.material.tabs.TabLayout>

它显示在选项卡菜单下方。

我想汉堡图标的第三个菜单比别人有较短的宽度。
但我猜TabItem宽度只适用于图标。
我无法使用widthweight
我该怎么做呢?

lx0bsm1f

lx0bsm1f1#

Layoutparams.weight将适用于该项目。

val yourTabLayoutView = binding.tabLayout // If you aren't using data biniding, You can use findViewById to get the view
val yourTabItemView = ((yourTabLayoutView.getChildAt(0) as LinearLayout).getChildAt(2) // 2 is for your tab item position.
yourTabItemView.layoutParams as LinearLayout.LayoutParams).weight = 0.2f // you can set the weight at here. Current one is 0.2, which means 20% size of the tab layout width.

相关问题