Текст обрезается на вкладке tablayout

Я использую табличку в своем приложении для Android, которое раздувает пользовательские вкладки и настраивает их с помощью значков. Текст одной из вкладок обрезается из-за нехватки места. Я должен сделать текст очень маленьким, чтобы отобразить его полностью. Вот как устроен мой tablayout.

        <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        app:layout_scrollFlags="scroll|enterAlways"
        android:layout_width="match_parent"
        android:layout_height="@dimen/custom_tab_layout_height"
        app:tabMode="fixed"
        app:tabGravity="fill" />

Пользовательский макет вкладки выглядит следующим образом:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/custom_text"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:background="?attr/selectableItemBackground"
    android:gravity="center"
    android:textSize="8dip"
    android:textColor="#ffffff"
    android:singleLine="true"/>

и вот код, в котором я настраиваю текст и значки для вкладок:

            TextView tabOne = (TextView)LayoutInflater.From(this).Inflate(Resource.Layout.custom_tab, null);
        tabOne.Text = "Home";
        tabOne.SetCompoundDrawablesWithIntrinsicBounds(0, Resource.Drawable.homewhite, 0, 0);
        tabLayout.GetTabAt(0).SetCustomView(tabOne);

        TextView tab2 = (TextView)LayoutInflater.From(this).Inflate(Resource.Layout.custom_tab, null);
        tab2.Text = "Inbox";
        tab2.SetCompoundDrawablesWithIntrinsicBounds(0, Resource.Drawable.messageWhite, 0, 0);
        tabLayout.GetTabAt(1).SetCustomView(tab2);

        TextView tab3 = (TextView)LayoutInflater.From(this).Inflate(Resource.Layout.custom_tab, null);
        tab3.SetCompoundDrawablesWithIntrinsicBounds(0, Resource.Drawable.upload_icon, 0, 0);
        tabLayout.GetTabAt(2).SetCustomView(tab3);

        TextView tab4 = (TextView)LayoutInflater.From(this).Inflate(Resource.Layout.custom_tab, null);
        tab4.Text = "Notification";
        tab4.SetCompoundDrawablesWithIntrinsicBounds(0, Resource.Drawable.notifWhite, 0, 0);
        tabLayout.GetTabAt(3).SetCustomView(tab4);

        TextView tab5 = (TextView)LayoutInflater.From(this).Inflate(Resource.Layout.custom_tab, null);
        tab5.Text = "Profile";
        tab5.SetCompoundDrawablesWithIntrinsicBounds(0, Resource.Drawable.profWhite, 0, 0);
        tabLayout.GetTabAt(4).SetCustomView(tab5);

Если я сделаю текст большим, вкладка будет выглядеть так

введите здесь описание изображения

Как сделать, чтобы отображался полный текст? Если я сделаю вкладку прокручиваемой, она перемещается вправо и влево, когда я нажимаю на вкладки. Любая помощь приветствуется.


person Ahmed Mujtaba    schedule 20.04.2016    source источник


Ответы (2)


Попробуйте использовать заполнение даже с нулевым значением,
app:tabPaddingStart="0dp" app:tabPaddingEnd="0dp"
проверьте этот фрагмент, это устранило проблему в моем случае.

 <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="@dimen/tablayout_height"
        app:tabGravity="fill"
        app:tabIndicatorHeight="0dp"
        app:tabMode="fixed"
        app:tabSelectedTextColor="@color/black"
        app:tabTextColor="@color/pure_white"
        app:tabPaddingStart="0dp"
        app:tabPaddingEnd="0dp"/>
person Mohamed    schedule 12.09.2018

Проблема в том, что не хватает места для отображения текста. На вашем месте я бы максимально уменьшил размер средней кнопки и посмотрел, достаточно ли места. В худшем случае вы можете либо удалить текст (значки довольно прямолинейны), либо уменьшить размер текста.

person fsebek    schedule 20.04.2016