仅显示自定义布局警告对话框中的按钮

时间:2016-11-07 09:00:44

标签: android layout alertdialog

enter image description here

我正在开发一个应用程序,我必须在屏幕上显示一个按钮,如屏幕截图所示。但我想在其他一些活动上显示此按钮。 例如我有一个活动在屏幕上。现在两分钟后我想显示一个自定义警告对话框,即屏幕上显示的这个屏幕,而不是只显示按钮,警告对话框显示整个屏幕为对话框,即白色背景。如何摆脱这种背景,以便只有这个按钮可以作为警告对话框显示在屏幕上? 我自定义布局的代码是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
    android:text="Unable to Snooze"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="15dp"
    android:id="@+id/button"
    android:background="#088a68"
    android:textColor="#FFFFFF"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="15dp" />

和警报对话框的活动代码是:

new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {

            AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(ActivityA.this);
            LayoutInflater inflater = ActivityA.this.getLayoutInflater();
            View dialogView = inflater.inflate(R.layout.alert, null);
            dialogBuilder.setView(dialogView);

            AlertDialog alert11 = dialogBuilder.create();
            alert11.show();

        }
    }, 120000);

注意我想将屏幕底部的按钮显示为alertdialog

3 个答案:

答案 0 :(得分:1)

编辑:

使用Dialog而不是AlertDialog.Builder,因此使用setContentView而不是setView。并检查一下:Dialog with transparent background in Android

旧答案:

如果要在多个活动中显示此按钮,则最好使用DialogFragment。您还可以将片段背景设置为透明,并且可以调整对话框的大小以适合按钮。

如何使用Dialog Fragment:https://stackoverflow.com/a/20405684/1781718

答案 1 :(得分:1)

试试这个: -

ViewPager

&安培;在您需要的地方调用此方法

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/btn_snooze"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Unable to snooze"/>
</LinearLayout>

答案 2 :(得分:0)

尝试:

AlertDialog alert11 = dialogBuilder.create();
// Add this
alert11.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

alert11.show();