【问题标题】:TextView cuts off text when it is long enough当文本足够长时,TextView 会切断文本
【发布时间】:2012-01-26 20:20:26
【问题描述】:

TextView 有一个奇怪的问题,它会在最后截断部分文本。我的布局看起来像

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="top|center_horizontal"
        android:gravity="top|center_horizontal"
        android:orientation="vertical" >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="top|center_horizontal"
            android:gravity="top|center_horizontal"
            android:orientation="horizontal"
            android:layout_weight="1"
            android:layout_marginBottom="5dp">
            <Button
                android:id="@+id/btnPreviousQuestion"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/selector_arrow_left"
                android:clickable="true"
                android:visibility="gone" >
            </Button>
            <TextView
                android:id="@+id/txtQuestion"
                style="@style/question_text"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:gravity="top|center_horizontal"
                android:layout_weight="1"
                 />
            <Button
                android:id="@+id/btnNextQuestion"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="10dp"
                android:background="@drawable/selector_arrow_right"
                android:clickable="true" >
            </Button>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_weight="1"
            android:orientation="horizontal" >
            <WebView
                android:id="@+id/wvMultimediaQuestion"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom|center_horizontal"
                android:layout_marginLeft="50dp"
                android:layout_marginRight="55dp"
                android:layout_weight="1"
                android:visibility="gone" />
        </LinearLayout>
    </LinearLayout>

当文本足够长时,txtQuestion 会切断文本。怎么回事,有人知道吗?

【问题讨论】:

  • 截断 - 当您显示文本或从 TextView 解析它时?
  • @Damir 你能张贴截取的文字截图吗?有问题的小混乱。我测试了你的布局,它显示了给定的整个文本。

标签: android android-widget


【解决方案1】:

利用这些属性

    android:lines="1"
    android:scrollHorizontally="true"
    android:ellipsize="end"

将在末尾附加“...”。但这不会解决蜂窝标签中的问题

所以对于蜂窝片也添加以下属性

android:singleLine="true" 

另一方面,如果您需要选取框效果

android:singleLine="true"
android:ellipsize="marquee" 
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true" 
android:focusable="true" 
android:focusableInTouchMode="true

【讨论】:

  • 您的选框效果代码仅适用于布局中的单个 TextView。如果您尝试让多个项目滚动,那么它不起作用。你如何处理多个 TextView 来产生这种效果?
【解决方案2】:

是的,你需要设置一些属性,但首先让我们知道你想要什么类型的文本视图,单行还是多行?

您可以注意一些属性:

android:singleLine="true"  // or false
android:ellipsize="marquee"   // must check
android:lines="1"

【讨论】:

    【解决方案3】:

    在布局文件中设置以下属性。对我来说很好用

    android:singleLine="true"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:focusableInTouchMode="true"
    

    【讨论】:

      【解决方案4】:

      如果您希望视图的文本长度不同,或者您要更改 TextView 的不同实例的 textSize,那么您应该使用 View.addOnLayoutChangeListener()

      在此处查看示例:https://stackoverflow.com/a/44069734/1402087

      【讨论】:

        【解决方案5】:

        你需要设置 android:minLines="2"

        【讨论】:

          【解决方案6】:

          对我来说,我意识到我正在使用与我正在测试的设备不同的设备的布局视图。当我纠正这个问题时,我可以看到 textlayout 太宽了,所以我使用这个设置来控制它:

          android:layout_width="330dp"
          

          【讨论】:

          • 不是在小空间中包装文本的好例子。最佳实践必须使用 wrap_content 或 match_parent。
          猜你喜欢
          • 2013-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多