android-fragments Android片段隐藏在操作栏下

nzk0hqpo  于 2022-11-14  发布在  Android
关注(0)|答案(4)|浏览(159)

遇到了一个奇怪的问题。碎片的内容被隐藏在操作栏下面。这是一个相当基本的抽屉布局和一个碎片。

新的android和不知道这是怎么回事。我用边距只是为了拉下来,你可以看到下面。但这听起来不正确,我...请抛出一些光我哪里错了。提前感谢。

qyswt5oh

qyswt5oh1#

如果您将FEATURE_ACTION_BAR_OVERLAYandroid:windowActionBarOverlay). Here设置为FEATURE_ACTION_BAR_OVERLAY,则这是正常的预期行为。

wwtsj6pe

wwtsj6pe2#

将属性app:layout_behavior="@string/appbar_scrolling_view_behavior”添加到片段的父视图中。

m528fe3b

m528fe3b3#

另一个可能的解决方案是将工具栏的父布局更改为LinearLayout(可能是垂直方向),因为这种布局类型不允许其子布局重叠。
例如,activity_main.xml中的此布局将导致片段位于工具栏下方,而不是工具栏后面:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"/>
    </com.google.android.material.appbar.AppBarLayout>

    <FrameLayout
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <androidx.fragment.app.FragmentContainerView
            android:id="@+id/nav_host_fragment"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:defaultNavHost="true"
            app:navGraph="@navigation/nav_graph"/>
    </FrameLayout>
</LinearLayout>
q35jwt9p

q35jwt9p4#

将片段布局的上边距设置为AcionBar的高度,终于成功了!!

android:layout_marginTop="?attr/actionBarSize"

不知道这是不是一个更好的解决方案,但对我来说,这是唯一的工作解决方案。

相关问题