【问题标题】:How to make AlertDialog full screen in android如何在android中使AlertDialog全屏
【发布时间】:2021-03-29 14:42:09
【问题描述】:

我知道以前有人问过这个问题,但我真的不明白,我希望我的警报对话框全屏显示,但它只是一直在后台显示我的应用程序,我在此处发布之前尝试了很多事情,因此,如果您知道如何做到这一点,请分享您的答案。

加载.java

        class LoadingDialog {
    
       private Activity activity;
       private AlertDialog dialog;
    
    
          LoadingDialog(MainActivity myActivity){
             activity = myActivity;
    
    
        }
    
        void hello(){
    
            AlertDialog.Builder builder = new AlertDialog.Builder(activity);
            LayoutInflater inflater = activity.getLayoutInflater();
            builder.setView(inflater.inflate(R.layout.custom_dialog, null));
            builder.setCancelable(false);
    
            dialog = builder.create();
            dialog.show();
    
    
        }
    void DismissDialog(){
        dialog.dismiss();
    }
    void dismiss() { dialog.dismiss(); }

}

custom_dialog.xml

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

    >

    <!--<view-->
    <!-- android:layout_width="match_parent"-->
    <!-- android:layout_height="match_parent" >-->
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@android:color/white"
        android:orientation="vertical">
        <com.airbnb.lottie.LottieAnimationView
            android:id="@+id/animationView"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginTop="100dp"
            android:padding="40dp"

            app:lottie_autoPlay="true"
            app:lottie_loop="true"
            app:lottie_rawRes="@raw/loading1" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:fontFamily="Arial"
            android:textAlignment="center"
            android:layout_marginRight="30dp"
            android:layout_marginLeft="30dp"
            android:layout_marginTop="20dp"

            android:text="Loading..."
            android:textColor="#196bbf"
            android:textSize="18sp"
            android:textStyle="bold"
            />
    </LinearLayout>
</RelativeLayout>

我在 Main 中如何称呼它:

final LoadingDialog loadingDialog = new LoadingDialog(MainActivity.this);

请你告诉我我错过了什么?请帮助我。

【问题讨论】:

标签: java android xml android-studio android-layout


【解决方案1】:

要使警报对话框适合屏幕宽度和高度,但操作栏可见,请使用以下代码:

    void hello(){

    AlertDialog.Builder builder = new AlertDialog.Builder(activity);
    LayoutInflater inflater = activity.getLayoutInflater();
    builder.setView(inflater.inflate(R.layout.custom_dialog_, null));
    builder.setCancelable(false);
    dialog = builder.show();

    dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT);

}

如果你还想隐藏 Actionbar,那么首先将下面的代码放入你的 styles.xml 文件中

    <style name="myFullscreenAlertDialogStyle" parent="Theme.AppCompat.Light.NoActionBar">      //no actionbar, but status bar exists
    <item name="android:windowFullscreen">true</item>                       //remove status bar
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>        //smooth animation
    <item name="colorAccent">@color/colorAccent</item>                      //change button text color
    </style>

并使用如下样式:

    void hello(){

    AlertDialog.Builder builder = new AlertDialog.Builder(activity,R.style.myFullscreenAlertDialogStyle);
    LayoutInflater inflater = activity.getLayoutInflater();
    builder.setView(inflater.inflate(R.layout.custom_dialog_, null));
    builder.setCancelable(false);
    dialog = builder.show();

    //dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT);

   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 2013-07-05
    • 2017-05-22
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多