15

我正在尝试创建一个 custom AlertDialog,并且布局中有两个按钮。但是,当按钮布局太长时,它只显示第一个单词。我已经在 xml 中设置了singleLine = "false",但什么都没有。

此外,我在代码中设置了按钮的行数,在本例中为 2。但是当文本不长时,按钮会保持很大,而不是包裹内容。

我想做的是让按钮包裹整个文本,即使它通过打破按钮的文本行太长,如果左按钮因为包裹整个文本而变得更大的高度,按钮在其侧面应具有相同的高度。我知道 Android 会自动执行此操作,但我不知道为什么它没有发生。

在下图中,按钮中的文本应该是“这是一个测试按钮”,但它会剪切文本,并且不会在不修改其宽度的情况下包装内容。

这是它的外观截图:

在此处输入图像描述

这是此布局的 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>
4

5 回答 5

25

编辑您的按钮属性..

<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" /> 
于 2011-08-30T13:07:16.143 回答
13

android:singleLine="true"已弃用。改用这个:

android:maxLines="1"
于 2016-10-14T09:38:10.653 回答
3

这可能是因为您使用了按钮的权重属性。

android:layout_weight="1"

移除按钮中的重量并设置

android:layout_width="wrap_content" 

按钮。我认为应该这样做。

请告诉我它是否有效。

于 2011-08-30T12:51:18.130 回答
1

android:singleLine="true"已弃用。改用这个:

android:maxLines="1"

编辑您的按钮属性。像:

<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" /> 
于 2019-11-06T05:31:50.127 回答
0

改变:

android:layout_height="fill_parent"

到:

android:layout_height="wrap_content"
于 2020-04-02T06:28:18.817 回答