我有两个文本视图需要在布局中并排放置,我必须遵守两条规则:
Textview2需要始终完整显示。
如果布局中没有足够的空间,则必须裁剪Textview1。
示例:
Textview1 | textview2
... Teeeeeeeeeeeeeeeeeeeextview1 | textview2
有什么想法吗?
我发现可能有用的唯一方法是使用textview2的文本创建一个drawable,并将其作为coumpoundDrawable对textview1进行影响。
答案 0 :(得分:50)
将两个TextView包装在LinearLayout中。将布局权重0分配给textview2,将布局权重1分配给textview2。
有关详细信息,请参阅此处:Linear Layout Weight
如果您使用下面的示例,您将看到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>
答案 1 :(得分:6)
为什么你需要那个可绘制的?选项:您可以使用具有固定宽度的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>
答案 2 :(得分:1)
Request URL: https://qr-generator.qrcode.studio/qr/custom
Request Method: POST
答案 3 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="right"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/holo_green_light"
android:singleLine="true"
android:text="textView1" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_light"
android:singleLine="true"
android:text="textView2" />
</LinearLayout>
修改:
简短textView1文字的输出:
长textView1文本的输出: