安卓:更改自定义AlertDialog背景(Android: Change custom Alert

2019-06-24 00:38发布

对话框布局XML:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/root_view"
     android:padding="3dp"
     android:background="@android:color/white"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" >

     //...content...

 </TableLayout>

在地图覆盖对话框执行上图钉挖掘时:

AlertDialog.Builder builder;

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Service.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.map_kap_dialog,
                    (ViewGroup) mapView.findViewById(R.id.root_view));

//prepare info to show...
//info prepared

//other preparations stuff
builder = new AlertDialog.Builder(context);
builder.setView(layout);
dialog = builder.create();
dialog.setInverseBackgroundForced(true);
dialog.setCanceledOnTouchOutside(true);
//show it
dialog.show();

而我所看到的,当测试:

所以我想,大约对话框(约方空格)变化浅灰色的背景为白色,所以它不会显得难看。 谁能帮我?

Answer 1:

我有同样的问题,我设法使用这样一个自定义对话框来解决它:

public class CustomDialog extends Dialog {
    public CustomDialog(Context context, View view) {
        super(context);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(view);
        getWindow().getDecorView().setBackgroundResource(android.R.color.transparent);
    }
}


Answer 2:

嘿,您的视图设置,建设者创造的上下这个灰色的线条,而不是你可以的setView您dialog.like dialog.setView(布局,0,0,0,0);这将势必布局到整个对话框。



Answer 3:

另一种选择是去除android:background="@android:color/white"的布局。 然后警告对话框将其默认浅灰背景均匀。 (既然你已经被迫在黑暗主题的倒数)至少它看起来不错,值得冒这个险。 只是我的两分钱。



文章来源: Android: Change custom AlertDialog background