文本在tablayout选项卡中被截断

时间:2016-04-20 14:21:28

标签: android tabs android-tablayout

我在我的Android应用程序中使用tablayout,它会自动填充自定义选项卡并使用图标进行设置。由于空间不足,其中一个标签的文字被切断了。我必须使文本真的很小才能完全显示。这是我的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);

如果我将文字设为大,那么tablayout就像这样

enter image description here

如何制作全文?如果我使tablayout可滚动,那么当我单击选项卡时它会向右和向左移动。 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

问题是没有足够的空间来显示文本。如果我是你,我会尽可能地减小中间按钮的大小,看看它是否给你足够的空间。最糟糕的情况你可以删除文本(图标非常简单)或使文字尺寸更小。

答案 1 :(得分:0)

即使值为零,也尝试使用填充,
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"/>