Пользовательская вкладка Android не имеет правильных размеров

Я создаю TabLayout с 5 вкладками. Я хочу создать меню, как в старом Instagram. Итак, для 3-й вкладки мне нужен пользовательский вид, поэтому у меня будет другой цвет фона. То, что я сделал до сих пор, это:

 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.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"/>

person Dimitris K.    schedule 12.12.2016    source источник


Ответы (1)


Если вы используете метод 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));

Тогда вы получите правильное измерение для всех вкладок.

person Mavya Soni    schedule 12.12.2016
comment
мой друг, я только что сделал это, но я не получил ожидаемого результата:/ - person Dimitris K.; 12.12.2016