片段对话框动画正确但布局完全黑色

Fragment Dialog Animating correctly but layout is completely black

下面是我的 dialogFragment class:

public static class MyDialog extends DialogFragment {
        @SuppressLint("InflateParams")
        @NonNull
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.styleDialog);
            // Get the layout inflater
            LayoutInflater inflater = getActivity().getLayoutInflater();

            // Inflate and set the layout for the dialog
            // Pass null as the parent view because its going in the dialog layout
            builder.setView(inflater.inflate(R.layout.custom_dialog, null));

            return builder.create();
        }

        @Override
        public void onStart() {
            super.onStart();

            if (getDialog() == null) {
                return;
            }

            DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
            float dpValue = 170f;
            float fPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue, metrics);

            int dialogWidth = Math.round(fPixels);
            int dialogHeight = ViewGroup.LayoutParams.WRAP_CONTENT;

            if (getDialog().getWindow() != null) {
                getDialog().getWindow().setLayout(dialogWidth, dialogHeight);
            }

        }
    }

这个方法是从我的 activity 调用来显示我的对话框:

private void showDialog() {
    DialogFragment dialogFragment = new MyDialog();
    dialogFragment.show(getSupportFragmentManager(), MyDialog.class.getName());
}

这是我的 style.xml 和 anim.xml 分别是:

<style name="styleDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowAnimationStyle">@style/CustomDialogAnimation</item>
</style>

<style name="CustomDialogAnimation">
    <item name="android:windowEnterAnimation">@anim/animate_down_side_opens_up</item>
    <item name="android:windowExitAnimation">@android:anim/slide_out_right</item>
</style>

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:fromXScale="1"
    android:fromYScale="0"
    android:pivotX="50%"
    android:pivotY="0%"
    android:toXScale="1.0"
    android:toYScale="1.0" />

当前情况: 我的对话框在一个开放的扩展中从上到下滑动,这正是我想要的。

问题: 但是,对话框本身是完全黑色的,不包含任何视图。

注意:如果没有任何动画,对话框将包含其布局视图元素。

编辑: 在下方添加自定义对话框布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:weightSum="3">

<TextView
    android:id="@+id/numberOneText"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_gravity="center"
    android:layout_marginTop="5dp"
    android:layout_weight="1"
    android:gravity="center"
    android:text="@string/numberOne"
    android:textSize="16sp" />

<TextView
    android:id="@+id/numberTwoText"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_gravity="center"
    android:layout_marginTop="10dp"
    android:layout_weight="1"
    android:gravity="center"
    android:text="@string/numberTwo"
    android:textSize="16sp" />

<TextView
    android:id="@+id/numberThreeText"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_gravity="center"
    android:layout_marginTop="10dp"
    android:layout_weight="1"
    android:gravity="center"
    android:text="@string/numberThree"
    android:textSize="16sp"
    android:layout_marginBottom="5dp"/>

</LinearLayout>

注意: 将 AlertDialog class 导入从 android.support.v7.app.AlertDialog 更改为 android.app.AlertDialog 更改了 UI 的自定义对话框到双平方对话框。下面附上图片:

都在那里,只是你看不见。像这样更改您的样式(添加一行,第一个样式标签内的第一行):

<style name="styleDialog" parent="@android:style/Theme.Dialog">
    <item name="android:background">@android:color/white</item>
    <item name="android:windowAnimationStyle">@style/CustomDialogAnimation</item>
</style>

<style name="CustomDialogAnimation">
    <item name="android:windowEnterAnimation">@anim/anim</item>
    <item name="android:windowExitAnimation">@android:anim/slide_out_right</item>
</style>

并且您的布局及其内容变得可见。它可能看起来不像你想要的那样,但你可以从那里开始工作。自己看看:

测试 android.support.v7.app.AlertDialog.