Button text not with multiple lines
Solution 1
edit your button property..
<Button
android:id="@+id/neutralButton"
android:layout_width="wrap_content"
android:background="@drawable/button"
android:textColor="#FFFFFF"
android:textSize="10dp"
android:layout_gravity="center_horizontal"
android:singleLine="true" />
Solution 2
android:singleLine="true"
is deprecated.
Use this instead:
android:maxLines="1"
Solution 3
It is probably because you have used the weight property for the buttons.
android:layout_weight="1"
Remove the weight in the buttons and set
android:layout_width="wrap_content"
for the buttons. I think that should do it.
please tell me if it works.
Solution 4
android:singleLine="true"
is deprecated. Use this instead:
android:maxLines="1"
Edit your button property. Like:
<Button
android:id="@+id/neutralButton"
android:layout_width="wrap_content"
android:background="@drawable/button"
android:textColor="#FFFFFF"
android:textSize="10dp"
android:layout_gravity="center_horizontal"
android:maxLines="1" />
rogcg
Updated on April 02, 2020Comments
-
rogcg about 4 years
I'm trying to create a custom
AlertDialog
, and there are two buttons in the layout. However when the button layout is too long it only shows the first word. I' ve already set in the xmlsingleLine = "false"
, but nothing.Also I've set in the code the number of lines for the button, in this case, 2. But when the text isn't long, the button keeps big, not wrapping the content.
What I would like to do is to make the button wrap the whole text, even if it is too long by breaking the text line of the button, and if the left button gets a bigger height because it is wrapping its whole text, the button in its side shall be the same height. I know Android does that automatically, bu I dont know why its not happening.
In the image below the text in the button should be "This is a test button", but it cuts the text, and doesn't wrap the content without modify its width.
Here is a screenshot of how it looks like:
Here is the xml of this layout:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_root" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:minWidth="280dip" > <LinearLayout android:id="@+id/dialogTitleLayout" android:orientation="vertical" android:background="@drawable/header" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView style="@style/DialogText.Title" android:id="@+id/dialogTitle" android:paddingBottom="5dp" android:paddingTop="5dp" android:paddingLeft="8dip" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:id="@+id/dialogContentLayout" android:orientation="vertical" android:background="@drawable/center" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView style="@style/DialogText" android:id="@+id/dialogContent" android:layout_width="270dip" android:layout_height="wrap_content" android:paddingLeft="10dp" android:paddingTop="10dp" /> <LinearLayout android:id="@+id/buttonsLayout" android:orientation="horizontal" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingTop="10dp" > <Button android:id="@+id/neutralButton" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/button" android:textColor="#FFFFFF" android:paddingTop="8dp" android:paddingBottom="8dp" android:layout_gravity="center_horizontal" android:layout_marginRight="90dp" android:layout_marginLeft="90dp" android:layout_marginBottom="10dp" android:singleLine="false" /> <Button android:id="@+id/positiveButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/button" android:textColor="#FFFFFF" android:paddingTop="8dp" android:paddingBottom="8dp" android:paddingLeft="10dp" android:layout_weight="1" android:paddingRight="10dp" android:layout_margin="10dp" android:singleLine="false" /> <Button android:id="@+id/negativeButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/button" android:textColor="#FFFFFF" android:paddingTop="8dp" android:paddingBottom="8dp" android:paddingLeft="10dp" android:layout_weight="1" android:paddingRight="10dp" android:layout_margin="10dp" android:singleLine="false" /> </LinearLayout> </LinearLayout> </LinearLayout>
-
rogcg over 12 yearsBy setting the width wrap_content, the buttons doenst have the same width. I want it to keep the same width. Like this, it makes the button with the long text biggest then the other button, and hidded the last letter of the text of the second button. I want it to break the line of the button text, instead of making it in horizontal. Thx anyways.
-
rogcg over 12 yearsWhy singleLine="true"?? I want it to break the text line of the button.
-
Mayur Bhola over 12 yearswhen u set singleline="true" it displays whole text in single line only and u set false it works opposite. may be your button textsize is too long and button width is small to the text. there was two option u need to increase your button width like wrap content or set text size two small.
-
Umesh over 12 yearsI guess you'll have to create a custom View with a FrameLayout containing a button and a TextView on top of it. Provide some padding to the TextView so that it does not touch the edge of the button.
-
rogcg over 12 yearsBut, even if the text size is too long, it should break the text line, right?? And the button has a width fill_parent.
-
Mayur Bhola over 12 yearsyou should try to set button width as per you text and your text size i some where small and also there was not need any padding bcoz it take space and affect to text.
-
rogcg over 12 yearsIt worked perfectly by removing the paddings from the button. After that I just had to customize a little, and it worked perfectly. Thanks a lot. Please edit your answer so I can set as answer. Thanks.
-
kelalaka over 4 yearsandroid:singleLine="true" is attribute has been deprecated since API Level 3