Вопрос по java, background-color, alertdialog, android – Android: изменить пользовательский фон AlertDialog

2

макет диалога 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   ответа
1

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

9

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

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

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

Похожие вопросы