我试图创建一个自定义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>
为什么singleLine =“true”?我想让它打破按钮的文本行。 – rogcg
当你设置singleline =“true”时,它仅在单行显示整个文本,而你设置为false它的作用与之相反。 可能是您的按钮文本太长,按钮宽度对文本而言很小。 有两个选项需要增加你的按钮宽度像包装内容或设置文本大小两个小。 –
但是,即使文本大小太长,也应该打破文本行,对吗?该按钮的宽度为fill_parent。 – rogcg