屏幕底部显示Samsung One UI上的Custom AlertDialog

时间:2019-05-09 10:34:42

标签: android android-layout samsung-mobile

我为我的应用实现了一个自定义AlertDialog,它可以与我测试过的所有设备配合使用,特别是对于使用Samsung One UI在Android 9上运行的Samsung设备而言。对于所说的三星设备,当我创建对话框时,它总是显示在屏幕的底部而不是中心。

“我的自定义警报对话框”

public static class DialogViewHolder {
        private CustomButton btnAccept, btnCancel;
        private CustomTextView title, message;
        private AlertDialog alertDialog;
        private View view;
        private Context context;
        private LinearLayout bg;

        public DialogViewHolder(Context context) {
            this.inflateView(context); // Should be the first
            this.buildAlertDialog(context);
            this.context = context;
        }

        /**
         * Inflates the custom view
         */
        private void inflateView(Context context) {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            this.view = inflater.inflate(R.layout.custom_alert_dialog, null);
        }

        /** Builds the alert Dialog */
        private void buildAlertDialog(Context context) {
            // Create Builder Configuration
            AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.CustomDialog);
            builder.setCancelable(false);
            builder.setView(this.view);
        }
}

我已经尝试过使用布局文件来确保它不是偶然现象,但是后来我确认这仅在运行Android Pie的三星设备上才发生。

我是否正确地假设它与Samsung One UI有关?根据我对UI的了解,使用该UI的大多数对话框都会在屏幕底部显示警报对话框。我的最终目标是能够将我的自定义AlertDialog保留在屏幕中间。

自定义AlertDialog的布局

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent">

    <LinearLayout
        android:id="@+id/dialog_bg_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@color/alert_background_color"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="@dimen/logout_container_width"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:paddingTop="@dimen/logout_padding_top"
            android:paddingRight="@dimen/logout_padding_left_right"
            android:paddingLeft="@dimen/logout_padding_left_right">

            <com.example.dialog.custom_views.CustomTextView
                android:id="@+id/alert_header"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/logout_padding_top"
                android:gravity="center"
                android:textAlignment="center"
                android:textColor="@color/alert_title_color"
                android:textSize="@dimen/logout_header_title_size"
                app:font_trait="Bold" />

            <com.example.dialog.custom_views.CustomTextView
                android:id="@+id/alert_message"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/alert_header"
                android:gravity="center"
                android:paddingBottom="@dimen/data_usage_header_margin"
                android:paddingTop="@dimen/data_usage_header_margin"
                android:textAlignment="center"
                android:textColor="@color/alert_negative_button_color"
                android:textSize="@dimen/logout_message_size" />

            <com.example.dialog.custom_views.CustomButton
                android:id="@+id/positive_button"
                android:layout_width="match_parent"
                android:layout_height="@dimen/logout_button_height"
                android:layout_below="@+id/alert_message"
                android:layout_marginBottom="@dimen/dialog_buttons_margin"
                android:background="@color/alert_positive_button_color"
                android:textSize="@dimen/logout_buttons_text_size"
                app:font_trait="Normal"/>

            <com.example.dialog.custom_views.CustomButton
                android:id="@+id/negative_button"
                android:layout_width="match_parent"
                android:layout_height="@dimen/logout_button_height"
                android:layout_below="@+id/positive_button"
                android:background="@color/alert_negative_button_color"
                android:textSize="@dimen/logout_buttons_text_size"
                android:layout_marginBottom="@dimen/dialog_cancel_margin_bottom"
                app:font_trait="Normal">

            </com.example.dialog.custom_views.CustomButton>


        </RelativeLayout>

    </LinearLayout>

</FrameLayout>

0 个答案:

没有答案