I have two textviews i need to put side by side in a layout and I have to respect two rules:
Textview2 needs always to be displayed entirely.
Textview1 has to be cropped if there is no enough room in the layout.
Examples:
Textview1|textview2
Teeeeeeeeeeeeeeeeeeeextview1...|textview2
Any ideas?
The only way I found that might work is to create a drawable with the text of textview2 and affect it as coumpoundDrawable to textview1.
Wrap the two TextViews in a LinearLayout. Assign a layout weight of 0 to textview2 and a layout weight of 1 to textview2.
See here for more info: Linear Layout Weight
If you play with the example below you'll see that the LinearLayout first allocates space to textview2 (with weight 0) and then allocates whatever remains to textview1 (with weight 1). If there is insufficient space to accommodate both TextViews, textview1 will be ellipsized first. In the example below textview2 will only ever become ellipsized if the LinearLayout is smaller than the size of textview2 itself. Assign a specific layout width to the FrameLayout and see what happens.
<?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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With