PreferenceScreen 总是在顶部显示额外的 space

PreferenceScreen always shows with additional space to top

目前,我遇到了有关偏好片段显示的问题。我正在使用底部导航菜单,我想显示一个工具栏(以前是操作栏),显示导航栏中当前选定的菜单项。

问题是在想要的工具栏和首选项片段顶部之间似乎还有第二个不可见的工具栏,如图所示。

首选项屏幕顶部:

<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory android:title="@string/preferences_category_online_area">
        <EditTextPreference
            android:key="preference_username"
            android:inputType="text"
            android:persistent="true"
            android:selectAllOnFocus="true"
            android:singleLine="true"
            android:summary="@string/edit_text_preferences_username_summary"
            android:title="@string/edit_text_preferences_username_text" />
        <EditTextPreference
            android:key="preference_password"
            android:inputType="textPassword"
            android:persistent="true"
            android:selectAllOnFocus="true"
            android:singleLine="true"
            android:summary="@string/edit_text_preferences_passwort_summary"
            android:title="@string/edit_text_preferences_passwort_text" />
...

mobile_navigation.xml:

<?xml version="1.0" encoding="utf-8"?>
<navigation 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:id="@+id/mobile_navigation"
    app:startDestination="@+id/navigation_library">

    <fragment
        android:id="@+id/navigation_dummy"
        android:name="de.example.OnlineSelectionFragment"
        android:label="@string/title_dummy"
        tools:layout="@layout/fragment_dummy" />

    <fragment
        android:id="@+id/navigation_preferences"
        android:name="de.example.PrefsFragment"
        android:label="@string/title_preferences" />
</navigation>

Class PrefsFragment.kt 其中片段填充了首选项

package de.example

import android.os.Bundle
import androidx.preference.PreferenceFragmentCompat


class PrefsFragment : PreferenceFragmentCompat() {

    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        setPreferencesFromResource(R.xml.preferences, null)
    }
}

如何删除空的顶部space?以前,PrefsFragment 已显示在额外的 activity 中,但没有它我无法将其格式化为 XML。

非常感谢!

编辑 1 根据要求主 activity xml 文件:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?attr/actionBarSize">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/nav_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="0dp"
        android:layout_marginEnd="0dp"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/bottom_nav_menu" />

    <fragment
        android:id="@+id/nav_host_fragment_activity_main"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:defaultNavHost="true"
        app:layout_constraintBottom_toTopOf="@id/nav_view"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:navGraph="@navigation/mobile_navigation" />

</androidx.constraintlayout.widget.ConstraintLayout>

问题已解决。

该行为的原因是 activity xml 主文件中的 android:paddingTop="?attr/actionBarSize"