我正在膨胀一个 AlertDialog 让用户发送评论。相当简单。但我收到了这个 Lint 警告:
布局对 API >= 14 使用了错误的按钮顺序:创建一个 layout-v14/chat_comment_dialog.xml 文件,顺序相反:取消按钮应该在左边(是“@string/send | Cancel”,应该是“Cancel | @字符串/发送“)
所以,是的,这就是解决方案,为 API >= 14 创建一个特定的布局并颠倒顺序。但是....真的吗?这真的是官方建议吗?在某些设备中设置一个订单,在其他设备中设置不同的订单?作为用户,我会感到非常困惑。我是否应该忽略这个 Lint 建议,或者以其他方式,为一组设备遵循这个新模式(我认为这很令人困惑)
无论如何,这是布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="8dp" >
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/username"
android:singleLine="true" />
<EditText
android:id="@+id/message"
android:layout_width="match_parent"
android:layout_height="180dp"
android:gravity="top|left"
android:hint="@string/review" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingRight="4dp"
android:text="@string/send"
android:textSize="18sp" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingLeft="4dp"
android:text="@android:string/cancel"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
顺便说一句,我必须在 XML 中而不是在 AlertDialog.Builder 中膨胀按钮(也许这样按钮会自动排序),因为您设置为 Builder 的默认按钮的任何 onClickListener 都会关闭对话框,我必须避免这种行为才能自己控制对话框。