【发布时间】:2015-04-02 05:46:53
【问题描述】:
我已经在 Android 中实现了以下对话框,但有一些问题我无法弄清楚为什么会发生。
- 我不明白为什么在顶角和底角有一个空白。以及如何删除它!
- 由于我使用的是
Dialog而不是AlertDialog,因此当我触摸屏幕上的其他位置时,此消息会消失。我想防止这种情况发生,并希望仅当用户选择这两个选项中的任何一个时才关闭消息框。 - 无论我尝试了多少次,我都无法获得相同宽度的“取消”和“擦除”按钮。
这里是 XML
custom_alert.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:background="@drawable/custom_alert_layout"
android:id="@+id/alert_layout"
android:paddingBottom="15dp"
android:paddingTop="10dp"
android:layout_height="wrap_content">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/alert_icon_imageview"
android:src="@drawable/alerticon"
android:layout_alignParentTop="true"
android:layout_alignLeft="@+id/alert_msg"
android:layout_alignStart="@+id/alert_msg" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/alert_title"
android:text="TITLE"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="#0a4d4a"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/alert_icon_imageview"
android:layout_toEndOf="@+id/alert_icon_imageview"
android:layout_marginLeft="20dp" />
<ImageView
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="10dp"
android:layout_marginRight="4dp"
android:layout_marginLeft="2dp"
android:id="@+id/alert_divider_imageview"
android:layout_below="@+id/alert_title"
android:src="@drawable/alertdivider"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert_msg"
android:text="MESSAGE"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:textSize="16sp"
android:layout_below="@+id/alert_divider_imageview"
android:textColor="#ff373334"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginRight="4dp"
android:layout_marginLeft="2dp"
android:layout_marginTop="10dp"
android:id="@+id/alert_divider_imageview2"
android:layout_below="@+id/alert_msg"
android:src="@drawable/alertdivider"/>
<Button
android:layout_width="150dp"
android:id="@+id/alert_cancel"
android:layout_marginLeft="10dp"
android:layout_marginRight="5dp"
android:layout_marginTop="15dp"
android:textColor="#ffffff"
android:textStyle="bold"
android:text="CANCEL"
android:background="@drawable/custom_alert_cancel"
android:layout_height="wrap_content"
android:layout_below="@+id/alert_divider_imageview2"
/>
<Button
android:layout_width="150dp"
android:id="@+id/alert_ok"
android:text="ERASE"
android:textStyle="bold"
android:layout_marginRight="10dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="15dp"
android:textColor="#ffffff"
android:background="@drawable/custom_alert_ok"
android:layout_toRightOf="@+id/alert_cancel"
android:layout_height="wrap_content"
android:layout_below="@+id/alert_divider_imageview2" />
</RelativeLayout>
custom_alert_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" >
<shape android:shape="rectangle">
<corners android:radius="10dp"/>
<solid android:color="#139977" />
<stroke android:width="2dp" android:color="#0a4d4a" />
</shape>
</item>
</selector>
【问题讨论】:
-
从根布局中移除
android:paddingTop="10dp" -
发布显示对话框代码。你是怎么膨胀的。
-
您需要删除标题栏并为对话框设置透明背景。阅读stackoverflow.com/questions/13495161/…
标签: android customization android-alertdialog android-dialog