为什么 Android 5 中的 DialogFragment 上面有额外的 Space?

Why is there additional Space above a DialogFragment in Android 5?

考虑这个 DialogFragment:

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.DialogFragment

class TestDialog: DialogFragment() {

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.test_dialog, container)
    }
}

以及对应的布局:

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

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Test Dialog" />
</LinearLayout>

当我在 Android 5 上 运行 时,"Test Dialog" 字符串上方的对话框中有额外的 Space:

在Android6及以上,没有额外的Space。为什么会出现在Android5?这是 Android 5 的支持库中的错误吗?有什么我可以做的吗?

使用

创建的对话框不会出现此问题
AlertDialog.Builder

你试过在 onCreateView() 上添加这个 getWindow().requestFeature(Window.FEATURE_NO_TITLE); 吗?

编辑

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
    View view = inflater.inflate(R.layout.fragment_dialog, container, false);
    return view;
}

希望对你有用