Android TextView在一行中

时间:2015-06-19 10:06:27

标签: android textview

下面有我的代码。我需要在这个片段中获得结果:

什么时候是短字符串:

1 line:  ABC (123)

什么时候是长字符串:

1 line:  ABC ABC ABC ABC ABC...(123)

任何帮助?

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/id1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:ellipsize="end"
        android:maxLines="1"
        android:visibility="visible"
        android:text="ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC"
        android:textSize="@dimen/text_size_form"/>

    <TextView
        android:id="@+id/id2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:ellipsize="end"
        android:maxLines="1"
        android:text="123"
        android:textSize="@dimen/text_size_form"/>

</LinearLayout>

6 个答案:

答案 0 :(得分:1)

如果长度超过特定长度,您可以检查字符串长度,而不是您想要的长度。

离。你想要的最大长度是20

if (str.length()>20) {
    str = str.substring(0, 20)+"..."; 
}

答案 1 :(得分:0)

在Textview中添加此属性android:singleLine =“true”

答案 2 :(得分:0)

使用以下代码

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/id1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textStyle="bold"
        android:ellipsize="end"
        android:maxLines="1"
        android:visibility="visible"
        android:text="ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC"
        android:textSize="@dimen/text_size_form"/>

    <TextView
        android:id="@+id/id2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:ellipsize="end"
        android:maxLines="1"
        android:text="123"
        android:layout_marginLeft="-3dp"
        android:textSize="@dimen/text_size_form"/>

</LinearLayout>

答案 3 :(得分:0)

你也可以使用RelativeLayout和下面的属性..

  1. alignParentRight for second TextView。
  2. 第二个TextView的第一个TextView toLeftOf。
  3. 以下是示例代码..试试这个。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <TextView
            android:id="@+id/id1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@+id/id2"
            android:ellipsize="end"
            android:singleLine="true"
            android:text="ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC"
            android:textStyle="bold"
            android:visibility="visible" />
    
        <TextView
            android:id="@+id/id2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:ellipsize="end"
            android:maxLines="1"
            android:text="123"
            android:visibility="visible" />
    
    </RelativeLayout>
    

    输出如下图所示。

    enter image description here

答案 4 :(得分:0)

尝试 -

    String s = "ABC ABC ABC ABC";

        if(s.split(" ").length>1)
        {
            s = s.split(" ")[0]+" ("+s.split(" ").length+")";
        }

textView.setText(s);

答案 5 :(得分:0)

只需在xml

中添加
android:ellipsize="middle"
android:singleLine="true"