我有一个布局,我有两个TextViews水平相邻。我想要实现的是一个视图,其中第二个TextView与第一个TextView的右侧对齐,但如果第一个TextView中的TextView变得太长,它将在右侧TextView的右边缘碰到容器边缘时截断。文本是动态设置的,可以有不同的长度。
我想要实现的图表如下(黄色=容器,红色框=第二个TextView):
我目前的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/white"
android:textIsSelectable="false"
android:text="Test"
android:textSize="18sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@id/textView1"
android:background="@drawable/textView2Background"
android:paddingBottom="2dp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:paddingTop="2dp"
android:text="TextView2"
android:textColor="@android:color/white"
android:textSize="15sp" />
</RelativeLayout>
但是,第一个TextView只是在它到达容器末尾时截断,此时第二个TextView被推到它之外并且不再可见。
由于
答案 0 :(得分:0)
您可以使用ImageSpan,请查看以前的问题:
答案 1 :(得分:0)
我能够使用以下布局解决这个问题:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/white"
android:textIsSelectable="false"
android:textSize="18sp" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/textView2Background"
android:paddingBottom="2dp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:paddingTop="2dp"
android:textColor="@android:color/white"
android:textSize="15sp" />
</FrameLayout>
</LinearLayout>