Android: изменить пользовательский фон AlertDialog

макет диалога xml:

<code><?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>
</code>

реализация диалога в наложении карты при нажатии на канцелярскую кнопку:

<code>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();
</code>

и что я вижу при тестировании:

enter image description here

Поэтому я хочу, чтобы светло-серый фон вокруг диалогового окна (вокруг квадратного белого пространства) изменился на белый, чтобы он не выглядел так ужасно. Может кто-нибудь мне помочь?

Ответы на вопрос(3)

Привет, установив ваш взгляд на строитель, вы создадите эти серые линии сверху вниз, вместо этого вы можете установить ViewView на ваш dialog.like dialog.setView (layout, 0,0,0,0); он будет привязывать ваш макет ко всему диалогу.

У меня была та же проблема, мне удалось исправить ее с помощью специального диалога, например:

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);
    }
}

Другим вариантом является удалениеandroid:background="@android:color/white" из вашего макета. Тогда диалоговое окно предупреждения будет иметь равномерно светло-серый фон по умолчанию. (Поскольку вы заставили обратить внимание на темную тему) По крайней мере, это выглядело бы хорошо и стоило хлопот. Просто мои два цента.

Ваш ответ на вопрос