I have a TextView in a LinearLayout. The textview's XML
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/CLOUDS"
android:ellipsize="none"
android:maxLines="100"
android:minHeight="20dp"
android:minLines="1"
android:layout_margin="0dp"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:paddingTop="0dp"
android:textSize="14sp"
android:paddingBottom="0dp"
android:layout_weight="10"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:singleLine="false"
android:scrollHorizontally="false"
android:inputType="textCapSentences|textMultiLine"
/>
On the right we see the textview set with text: "Campanario Blanco\\nMistral Ice\\nMistral" The last word is not displayed.
On the left we have another textview with weight 10. Both are placed within a Linear layout.
LinearLayout linearLayout = new LinearLayout(context.mContext);
LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
ll.topMargin = 2;
ll.bottomMargin = 0;
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.setLayoutParams(ll);
linearLayout.setPadding(0, 0, 0, 0);
bubble.addView(linearLayout);
Now if I change the content of the view to "Campanario Blanco\\nMistral Ice\\nMistral\\nMalibu" Now 'mistral' is visible, but the new last work 'Mailbu' is not.
As shown the total line count is equal to the sum of the \\n but it doesn't take into account the wrapping of the first string. If we remove the long text, it works as expected. "Mistral Ice\\nMistral\\nMalibu"
You can have something like this, use like this
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:padding="6dp"
android:background="#358576"
tools:context="com.example.yujcore7.myapplicationtextviewdemo.MainActivity">
<TextView
android:textColor="#fff"
android:textSize="20sp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:text="Marca(s)" />
<TextView
android:textColor="#fff"
android:textAllCaps="true"
android:textSize="16sp"
android:layout_marginRight="10dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Campanario Blanco\nMistral Ice\nMistral\nMalibu" />
use this layout and let me know.
Thanks to @swanand-vaidya I tracked the error down. One of the parent's parent's had a wrap_content set.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/WET_ASPHALT"
android:orientation="vertical">
<TextView
android:layout_width="270dp"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#0D97FC"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="10"
android:background="@color/AMETHYST_DARK"
android:text="line1 hello world hello world hello world hello world \nline2 hello world hello\nline 3hello world\nline4 hello world world"
android:textSize="14sp" />
</LinearLayout>
The result of this layout is
Line4 is not displayed. As the top-most linear-layout has wrap_conent.
When the top-most layout has a fixed value or match_parent. All lines are correctly displayed.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.