我需要在布局中并排放置两个textviews,我必须遵守两个规则:
Textview2需要始终完全显示.
如果布局中没有足够的空间,则必须裁剪Textview1.
例子:
Textview1 | textview2
Teeeeeeeeeeeeeeeeeeeextview1 ... | textview2
有任何想法吗?
我发现可能有用的唯一方法是使用textview2的文本创建一个drawable,并将其作为coumpoundDrawable影响到textview1.
Dea*_*ean 53
将两个TextView包装在LinearLayout中.将布局权重0分配给textview2,将布局权重1分配给textview2.
有关详细信息,请参阅此处:线性布局重量
如果您使用下面的示例,您将看到LinearLayout首先将空间分配给textview2(权重为0),然后将剩余的内容分配给textview1(权重为1).如果没有足够的空间容纳两个TextView,则textview1将首先进行椭圆化处理.在下面的示例中,如果LinearLayout小于textview2本身的大小,textview2将永远变为椭圆化.为FrameLayout指定特定的布局宽度,看看会发生什么.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="200dp"
android:layout_height="match_parent"
android:background="#FF0000FF">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#FFFF0000"
android:ellipsize="end"
android:maxLines="1"
android:text="textview1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:background="#FF00FF00"
android:ellipsize="end"
android:maxLines="1"
android:text="textview2" />
</LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
为什么你需要那个可绘制的?选项:您可以使用具有固定宽度的textview1并对结尾进行椭圆化..:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/textview1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:padding="2dp" />
<TextView
android:id="@+id/textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/textview1"
android:padding="2dp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)