Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent Button Resizing When Text Is Too Long?

Tags:

android

I just wondered if it's possible to prevent a Button resizing when assigning long text to it.

I am wanting to place 2 rows of 4 buttons in my Layout but as soon as I change the text in one it automatically resizes squashing the others so nothing is evenly sized.

I've tried weight, weight sum, gravity but I have to admit my lack of understanding of these attributes!

This is my XML so far:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/linearLayout1" 
    android:background="@drawable/backgroundrepeat" 
    android:orientation="vertical"
    android:weightSum="2">
    <ScrollView android:id="@+id/scrollView1" 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:layout_weight="2">
        <TextView android:id="@+id/textView1" 
            android:layout_width="match_parent" 
            android:text="TextView" 
            android:layout_height="wrap_content">
        </TextView>
    </ScrollView>
    <LinearLayout android:layout_height="wrap_content" 
        android:id="@+id/linearLayout3" 
        android:layout_width="match_parent" 
        android:layout_weight="1"
        android:weightSum="4.0"
        android:gravity="left">
        <Button android:text="Button" 
            android:id="@+id/button1" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" android:layout_weight="1.0">
        </Button>
        <Button android:text="Button" 
            android:gravity="center"
            android:id="@+id/button2" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" android:layout_weight="1.0">
        </Button>
        <Button android:text="Button" 
            android:id="@+id/button3" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" android:layout_weight="1.0">
        </Button>
        <Button android:id="@+id/button4" 
            android:layout_height="wrap_content" 
            android:layout_width="wrap_content" 
            android:text="Button" android:layout_weight="1.0">
        </Button>
    </LinearLayout> 
    <LinearLayout android:layout_height="wrap_content" 
        android:id="@+id/linearLayout3" 
        android:layout_width="match_parent" 
        android:layout_weight="1"
        android:weightSum="4.0"
        android:gravity="left">
        <Button android:text="Button" 
            android:id="@+id/button5" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" android:layout_weight="1.0">
        </Button>
        <Button android:text="Button" 
            android:gravity="center"
            android:id="@+id/button6" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" android:layout_weight="1.0">
        </Button>
        <Button android:text="Button" 
            android:id="@+id/button7" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" android:layout_weight="1.0">
        </Button>
        <Button android:id="@+id/button8" 
            android:layout_height="wrap_content" 
            android:layout_width="wrap_content" 
            android:text="Button" android:layout_weight="1.0">
        </Button>
    </LinearLayout>          
</LinearLayout>
like image 512
D-Dᴙum Avatar asked Dec 27 '22 17:12

D-Dᴙum


1 Answers

Add to your button attributes -any proper calculated size you want, this will limit the characters and add "..." to the text string

 <Button
    android:id="@+id/yourButtonID"
    android:layout_width="70dp"
    android:layout_height="60dp"
    android:textSize="12sp"
    android:scrollHorizontally="true" 
    android:lines="1"
    android:ellipsize="end"/>
like image 130
Vinayak Bevinakatti Avatar answered Jan 08 '23 13:01

Vinayak Bevinakatti