Как исправить деформации диалогов при сборке на более низкую версию ОС? - PullRequest
0 голосов
/ 13 февраля 2019

Я запускаю свое приложение для Android на своем телефоне с ОС Android 8.1 Oreo, и с диалогом проблем не возникает, но когда я устанавливаю / собираю на другой телефон с леденцом на андроиде, диалог деформируется до исходного размера.

См. Изображение ниже.

Пожалуйста, нажмите для изображения (Ошибка дизайна деформации)

Исходный код в диалоге

 final Dialog dialog = new Dialog(context);
        dialog.setContentView(R.layout.dialogue_dash_date_picker);

        final Spinner spinner = dialog.findViewById(R.id.typeViewSpinner);
        Button btnDismiss = dialog.findViewById(R.id.btnOK);
        String viewType = ViewTypeSingleton.getInstance().getTypeview();
        if (viewType.equals(""))
            spinner.setSelection(0);
        else if (viewType.equals("Day"))
            spinner.setSelection(1);
        else if (viewType.equals("Week"))
            spinner.setSelection(2);
        else if (viewType.equals("Month"))
            spinner.setSelection(3);
        else if (viewType.equals("Year"))
            spinner.setSelection(4);
        else if (viewType.equals("All"))
            spinner.setSelection(5);

        btnDismiss.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.dismiss();
                String choosen = spinner.getSelectedItem().toString();
                ViewTypeSingleton.getInstance().setTypeview(choosen);
                message.success(""+choosen,context);
                fragmentRedirection(new fragment_main());
            }
        });
        dialog.create();
        dialog.show();

Пожалуйстапомогите мне исправить это.

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Пожалуйста, попробуйте установить высоту и ширину диалогового окна следующим образом:

Dialog dialog = new Dialog(context,android.R.style.Theme_Translucent_NoTitleBar);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.YOUR_LAYOUT);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
lp.gravity = Gravity.CENTER;
dialog.getWindow().setAttributes(lp);
dialog.show();
0 голосов
/ 13 февраля 2019

Добавьте этот стиль в ваш style.xml

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog">

    <item name="android:windowBackground">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>

</style>

И создайте свой диалог вот так

 final Dialog dialog = new Dialog(context, R.style.MyDialogTheme);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...