2

这是一个关于如何最好地处理文本截断的简短问题。你知道当它被 TextView 截断时向用户显示完整字符串的好方法吗?

任何大小的屏幕都可能会截断 TextView 中设置的长字符串的文本。当应用程序支持多种尺寸,特别是普通和大尺寸屏幕时,这个问题变得更加明显。

一个好的建议是使文本视图可滚动。我对这个建议的问题是我计划在所有四个方向上滑动导航交互,这使文本视图滚动变得复杂。我今天在 Android 办公时间提出了这个问题。欢迎提出任何建议,尤其是基于现有解决方案的建议。提前致谢...

4

3 回答 3

0

有一个完美的指导方针,建议将文本大小调整为相应的屏幕大小。在这里你可以找到它。

还有一些属性可以用于文本视图;

  • 小的
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall" />
  • 中等的
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
  • 大的
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
于 2012-05-23T22:40:12.880 回答
0

您可以使用它来截断您的文本:

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is your text"
android:ellipsize="marquee" android:lines="1 />
于 2012-05-23T23:08:23.017 回答
0

解决问题的一种方法是向 textview 添加一个属性,使其无需添加代码即可滚动:

android:lines="3"
android:textIsSelectable="true" 
android:fadeScrollbars="false"

这是 Android Dev Relations 团队的一名成员在办公时间提出的建议。但是,在测试时,滚动无法在 Android 版本 2.2.2 上运行。我的新解决方案是声明 textview 可点击并使用 onClick 回调打开一个对话框。

所以现在我省略了文本(不再有滚动标签),让用户清楚地表明文本被截断了。这是xml:

android:lines="3"
android:clickable="true"
android:onClick="showDef"
android:ellipsize="start"
android:isScrollContainer="false"

这是 showDef 方法:

public void showDef(View v) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("same text as was set in the text view")
        .setCancelable(false)
        .setNegativeButton("Clear", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
           }
        });

AlertDialog alert = builder.create();
alert.show()

在包含 textview 的视图组具有固定大小的情况下,我更喜欢这个解决方案而不是简单的滚动。我希望它也对你有用。

于 2012-05-30T19:32:54.150 回答