0

I have Two TextViews in one LinearLayout and I want both texts take as much space as given in the LinearLayout but without cutting off each other. I tried to work withminWidth but layout_weight ignores it. Here is one example:

<TextView
        android:id="@+id/textOrigin"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:ellipsize="end"
        android:maxLines="1"
        android:layout_weight="1"
        android:minWidth="170dp".  <-- does not work.../>

<TextView
        android:id="@+id/textDestination"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:ellipsize="end"
        android:maxLines="1"
        android:layout_weight="0"
        android:gravity="end"/>

The problem is that the second TextView can be very long and if the width is wrap_content It will cut off the first TextView aligned. So I want to set a minWidth.

|<TextView>......<TextView>| --> no cut off normal position

|<TextViewcanbeverylong...><TextView>| --> left one very long. right one should have minWidth of 100 and then ellipsized

|<TextView><TextViewcanbeverylongtoo...>| --> right one very long. left one should have minWidth of 100 and then ellipsized

All three scenarios should work

Two TextViews side by side, only one to ellipsize?

This one is similar but not the same as my question. The Ticket above just solve the not cutting off text in one direction so only if the left text ist long the right text will not be cut off but I want that in both directions.

SOLUTION: Here is the solution: Just change Width to wrap_content. Then it is possible to use minWidth.

<TextView
        android:id="@+id/textOrigin"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:ellipsize="end"
        android:maxLines="1"
        android:layout_weight="1"
        android:minWidth="170dp"/>

<TextView
        android:id="@+id/textDestination"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:ellipsize="end"
        android:maxLines="1"
        android:layout_weight="1"
        android:minWidth="170dp"
        android:gravity="end"/>
CJ Kev
  • 31
  • 5

1 Answers1

1

Try this code, maybe it works!

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/textOrigin"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:maxLines="1"
        android:layout_weight="0.5"/>

    <TextView
        android:id="@+id/textDestination"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:maxLines="1"
        android:layout_weight="0.5"
        android:gravity="end"/>
</LinearLayout>
Mohak Shah
  • 518
  • 3
  • 12