这是一个关于如何最好地处理文本截断的简短问题。你知道当它被 TextView 截断时向用户显示完整字符串的好方法吗?
任何大小的屏幕都可能会截断 TextView 中设置的长字符串的文本。当应用程序支持多种尺寸,特别是普通和大尺寸屏幕时,这个问题变得更加明显。
一个好的建议是使文本视图可滚动。我对这个建议的问题是我计划在所有四个方向上滑动导航交互,这使文本视图滚动变得复杂。我今天在 Android 办公时间提出了这个问题。欢迎提出任何建议,尤其是基于现有解决方案的建议。提前致谢...
这是一个关于如何最好地处理文本截断的简短问题。你知道当它被 TextView 截断时向用户显示完整字符串的好方法吗?
任何大小的屏幕都可能会截断 TextView 中设置的长字符串的文本。当应用程序支持多种尺寸,特别是普通和大尺寸屏幕时,这个问题变得更加明显。
一个好的建议是使文本视图可滚动。我对这个建议的问题是我计划在所有四个方向上滑动导航交互,这使文本视图滚动变得复杂。我今天在 Android 办公时间提出了这个问题。欢迎提出任何建议,尤其是基于现有解决方案的建议。提前致谢...
有一个完美的指导方针,建议将文本大小调整为相应的屏幕大小。在这里你可以找到它。
还有一些属性可以用于文本视图;
<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" />
您可以使用它来截断您的文本:
<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 />
解决问题的一种方法是向 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 的视图组具有固定大小的情况下,我更喜欢这个解决方案而不是简单的滚动。我希望它也对你有用。