首页 > 解决方案 > Xamarin.android 删除对话框的背景

问题描述

当我创建一个对话框时,它会按原样显示,但由于某种原因,它会在卡片视图后面创建一个白色背景

弹出代码

<androidx.cardview.widget.CardView
    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="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    app:cardCornerRadius="20dp">
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/DialogBarLayout"
        android:layout_gravity="center"
        android:background="@android:color/holo_red_dark"
        android:layout_height="match_parent"
        android:layout_width="match_parent">
        <ProgressBar
            android:id="@+id/progressBar"
            android:layout_width="125dp"
            android:layout_height="125dp"
            android:foregroundGravity="center"
            android:indeterminate="false"
            android:layout_centerInParent="true"
            style="?android:attr/progressBarStyleHorizontal"
            android:secondaryProgress="100"
            android:progressDrawable="@drawable/progress_circle"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintTop_toBottomOf="@+id/progressBar"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            android:gravity="center"
            android:text="@string/loading"
            android:id="@+id/loading_msg"
            android:layout_toEndOf="@id/progressBar"
        />
    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>

我创建它的方式

    public Dialog DialogProgressBar(Context content)
    {
      Dialog popupDialog = new Dialog(content);
      popupDialog.SetContentView(Resource.Layout.progress_dialog_bar);
      popupDialog.Window.SetSoftInputMode(SoftInput.AdjustResize);
      popupDialog.Window.SetTitle("Alert");
      popupDialog.SetCancelable(false);
      prgBar = (ProgressBar)popupDialog.FindViewById(Resource.Id.progressBar);
      return popupDialog;
    }

我的问题是:如何移除卡片视图后面的白板并使其透明?

标签: c#androidxmlxamarin.android

解决方案


对话框窗口的默认颜色是白色,因此您必须更改窗口的背景资源。像这样:

popupDialog.Window.SetBackgroundDrawableResource(Resource.Color.transparent);

在颜色.xml

<resources>
    ...
    <color name="transparent">#00000000</color>
</resources>

推荐阅读