Button text not with multiple lines

33,777

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" /> 
Share:
33,777
rogcg
Author by

rogcg

Updated on April 02, 2020

Comments

  • rogcg
    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 xml singleLine = "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:

    enter image description here

    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
    rogcg over 12 years
    By 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
    rogcg over 12 years
    Why singleLine="true"?? I want it to break the text line of the button.
  • Mayur Bhola
    Mayur Bhola over 12 years
    when 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
    Umesh over 12 years
    I 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
    rogcg over 12 years
    But, 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
    Mayur Bhola over 12 years
    you 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
    rogcg over 12 years
    It 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
    kelalaka over 4 years
    android:singleLine="true" is attribute has been deprecated since API Level 3