Android自定义标签无法获得正确的尺寸

时间:2016-12-12 08:42:25

标签: android android-tablayout

我正在创建一个包含5个标签的TabLayout。我想创建一个像旧Instagram一样的菜单。所以对于第三个标签,我需要自定义视图,所以我将有不同的背景颜色。 我到现在所做的是:

 View view1 = getLayoutInflater().inflate(R.layout.custom_tab, null);
    view1.findViewById(R.id.icon).setBackgroundResource(R.drawable.profile_btn);


    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.home_btn));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.tools_btn));
    tabLayout.addTab(tabLayout.newTab().setCustomView(view1));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.countdown_btn));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.user_btn));

但是我没有预期的结果。这就是我的意思: 如您所见,我想要的背景颜色不会填充特定选项卡的所有宽度。 TabLayout Custom Tab

Custom_tab.xml文件正在使用RelativeLayout,我在其中设置了bg颜色,其中包含:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/icon"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop"
    android:layout_centerInParent="true"/>

1 个答案:

答案 0 :(得分:0)

如果您使用的是默认的tablayout.setIcon()方法,那么您应该使用所有标签。

tabLayout.addTab(tabLayout.newTab().setCustomView(view1));
tabLayout.addTab(tabLayout.newTab().setCustomView(view2));
tabLayout.addTab(tabLayout.newTab().setCustomView(view3));
tabLayout.addTab(tabLayout.newTab().setCustomView(view4));
tabLayout.addTab(tabLayout.newTab(.setCustomView(view5));

然后,您将获得所有标签的正确尺寸。