I am wondering how to have a TextView
display its content on several lines without hardcoding the width in the XML.
You could try
android:inputType="textMultiLine"
in your TextView XML. This worked for me.
Though I cannot reproduce the not wrapping problem, you can fix the positioning problem by using a weight
on the first TextView
. Using the following XML gives the expected output in the graphical layout view in Eclipse:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:singleLine="false"
android:text="Long multiline text"/>
<TextView
android:textColor="@color/text_color"
android:layout_width="130dp"
android:layout_height="wrap_content"
/>
</LinearLayout>
I think I had very similar problem. I had a TextView
with a text, where I was not sure how much lines will it take. It was encapsulated by a LinearLayout
having android:layout_width="match_parent"
to ensure my text will fill out all the space horizontally. However, the problem was that my text did not fit into 1 line and when it did break into a new line, the next view component below it did not move downwards to give enough space for the second line to be viewable fully.
I could achieve the solution by changing the LinearLayout
that was containing my TextView
into a RelativeLayout
. By this way, the element below the text (actually below the Layout itself) was moved automatically to give enough space for the multi-line text.
Also add
android:minLines="2"
android:scrollHorizontally="false"