下面有我的代码。我需要在这个片段中获得结果:
什么时候是短字符串:
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>
答案 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和下面的属性..
以下是示例代码..试试这个。
<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>
输出如下图所示。
答案 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"