问题描述
|
我有以下不起作用的布局:
<LinearLayout
android:orientation=\"horizontal\"
android:layout_width=\"match_parent\"
android:id=\"@+id/experienceLayout\"
android:background=\"#ffffff\"
android:layout_height=\"match_parent\"
android:paddingLeft=\"6dp\"
android:paddingRight=\"6dp\"
android:paddingBottom=\"6dp\"
android:paddingTop=\"6dp\">
<TextView
android:layout_weight=\"1\"
android:id=\"@+id/experienceLabel\"
android:text=\"Experience\"
android:layout_height=\"wrap_content\"
android:textColor=\"#000000\"
android:layout_width=\"wrap_content\"
android:textStyle=\"bold\">
</TextView>
<TextView
android:id=\"@+id/experienceTextView\"
android:text=\"TextView\"
android:layout_height=\"wrap_content\"
android:textColor=\"#000000\"
android:layout_width=\"wrap_content\"
android:ellipsize=\"end\"
android:lines=\"1\"
android:maxLines=\"1\"
android:singleLine=\"true\"
android:fadeScrollbars=\"false\">
</TextView>
</LinearLayout>
解决方法
这是一个普遍的问题。尝试使用以下内容:
android:scrollHorizontally=\"true\"
android:ellipsize=\"end\"
android:maxLines=\"1\"
.............. scrollHorizontally是使其工作的“特殊调味料”。
, 这也将使椭圆成一行
android:singleLine=\"true\"
, 用这个
android:ellipsize=\"end\"
android:singleLine=\"true\"
在不完全知道输出内容的情况下不要使用此功能
android:ellipsize=\"end\"
android:maxLines=\"1\"
当您使用ѭ5some时,将截断大多数字符。
, 它在多种设备/ API上为我工作的方式是这样编程的(其中TV是您的TextView):
if (tv.getLineCount() > 1) {
int lineEndIndex = tv.getLayout().getLineEnd(0);
String text = tv.getText().subSequence(0,lineEndIndex - 3) + \"\\u2026\";
tv.setText(text);
}
, 因此,以上所有答案都符合只应显示1行然后省略号的要求。但是,如果希望省略号出现在某些文本行之后,则应使用以下命令:
android:ellipsize=\"end\"
android:maxLines=\"2\"
android:singleLine=\"false\"
这样,省略号将仅出现在2行之后。注意:将singleLine设置为false很重要。
, 这帮助了我:
android:ellipsize=\"end\"
android:maxLines=\"1\"
android:singleLine=\"true\"
确保将TextView
width
设置为Match_Parent
https://github.com/chrisjenx/Calligraphy/issues/43#issuecomment-523701518
, android:singleLine
已弃用。就我而言,我必须为get9ѭ设置一个固定的高度,并使用used14ѭ属性而不是android:maxLines
。我认为这可以帮助遇到与我相同的问题的人。
android:ellipsize=\"end\"
android:lines=\"2\"