我正在创建一个包含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"/>
答案 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));
然后,您将获得所有标签的正确尺寸。