具有两个标签的TabLayout,其中一个75%,其他25%

时间:2019-03-29 20:28:33

标签: android tabs android-tablayout

我正在使用具有两个标签的屏幕:

  • 第一个必须具有屏幕宽度的75%。
  • 第二个必须具有屏幕宽度的25%。

示例:

enter image description here

这是我定义TabLayout的方式:

<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill"
app:tabMaxWidth="0dp"
app:tabMode="scrollable"
app:tabSelectedTextColor="@color/orange"
app:tabTextAppearance="@style/TabTextAppearance"
app:tabTextColor="@color/darkGrey" >

如何自定义标签布局以固定所需的宽度?

2 个答案:

答案 0 :(得分:0)

您可以通过编程方式进行。分别为不同的标签添加它们。

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);

答案 1 :(得分:-1)

对于LinearLayout,您可以使用weight机制:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <View
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:background="#0f0" />

    <View
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#00F" />

</LinearLayout>

第一个View具有权重3,第二个具有1。因此4(前75%,后25%)一起出现