如果TextView大于1行,如何显示椭圆?

问题描述

| 我有以下不起作用的布局:
<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\"
.............. scrollHorizo​​ntally是使其工作的“特殊调味料”。     ,        这也将使椭圆成一行
 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\"