如何阻止Android标签中的标题包装在单词的中间?

问题描述 投票:4回答:4

我有一个带有几个标签的布局。发生的事情是,在横向方向上,布局包装了标签标题中使用的文字,而不是单词 - 它包裹在单词的中间!所以标题如下:

Description  

在肖像中看起来很好,但在风景中显示如下:

Desc  
ript  
ion

我没有为文本指定任何自动换行或样式属性。我认为布局在横向模式下比肖像有更多的空间,所以这没有任何意义。不胜感激任何关于应该注意什么的建议。

android text tabs title word-wrap
4个回答
10
投票

迟到的回复,但谷歌把我带到了这里,所以这可能仍然有用。

您可以选择滚动标签,我认为这比更改字体大小更好。

应用程式:tabMode = “滚动”

<android.support.design.widget.TabLayout
        android:id="@+id/tablayout_id"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        app:tabMode="scrollable"
        >

0
投票
  • 您是否使用相同的横向和纵向布局文件?
  • 标签的宽度是否设置为wrap_content
  • 尝试在标签文本上设置singleLine="true"
  • 更改为横向时,选项卡图形的宽度是否会增加?
  • 您是否在选项卡上使用自定义背景,如果是这样,它是九补丁?

虽然TBH我通常使用RadioGroup和FrameLayout来实现标签,因为它提供了更多的控制(你不能在2.2之前更改标签条可绘制,并且使用这种方法你的标签可以与标签内容分开,这样你就可以放置哪里都行)。


0
投票

好的,我们设法解决了这个问题。不得不将字体大小减小1pt,并减少选项卡上的左+右填充。我们还注意到,在横向上,标签大小都相同,但是在纵向中它们不是,所以很明显我们有一个fill_parent而不是wrap_content。修复似乎适用于7“和10”平板电脑。谢谢你的帮助。


0
投票

你可以管理这个

在项目ActionBarSherlock中重写此类./ActionbarSherlock/src/com/actionbarsherlock/internal/widget/ScrollingTabContainerView.java

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    if (mParent.mMaxTabWidth > 0 && getMeasuredWidth() > mParent.mMaxTabWidth) {

        //comment this line

       // super.onMeasure(MeasureSpec.makeMeasureSpec(mParent.mMaxTabWidth, MeasureSpec.EXACTLY),heightMeasureSpec);

       //now do nothing , override by me for ActionBarTabs not rezize never
      //this method manage the size tabs, if you want you can count caracters to resize the size width
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.