Текст кнопки не состоит из нескольких строк - PullRequest
10 голосов
/ 30 августа 2011

Я пытаюсь создать пользовательский AlertDialog, и в макете есть две кнопки. Однако, когда расположение кнопок слишком длинное, оно показывает только первое слово. Я уже установил в xml singleLine = "false", но ничего.

Также я установил в коде количество строк для кнопки, в данном случае 2. Но когда текст не длинный, кнопка остается большой, не оборачивая содержимое.

То, что я хотел бы сделать, это заставить кнопку обернуть весь текст, даже если он слишком длинный, ломая текстовую строку кнопки, и если левая кнопка получает большую высоту, потому что она переносит весь текст Кнопка на боку должна быть одинаковой высоты. Я знаю, что Android делает это автоматически, но я не знаю, почему этого не происходит.

На изображении ниже текст в кнопке должен быть «Это тестовая кнопка», но он обрезает текст и не переносит содержимое без изменения его ширины.

Вот скриншот того, как это выглядит:

enter image description here

Вот XML-код этого макета:

<?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>

Ответы [ 3 ]

17 голосов
/ 30 августа 2011

изменить свойство кнопки ..

<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" /> 
9 голосов
/ 14 октября 2016

android:singleLine="true" устарело. Используйте это вместо:

android:maxLines="1"
3 голосов
/ 30 августа 2011

Вероятно, потому, что вы использовали свойство веса для кнопок.

android:layout_weight="1"

Снимите вес в кнопках и установите

android:layout_width="wrap_content" 

для кнопок. Я думаю, что это должно сделать.

скажите, пожалуйста, работает ли он?

...