gpt4 book ai didi

android - fitsSystemWindows 在添加的 fragment 中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:02:01 29 4
gpt4 key购买 nike

在我的应用程序中,我有一项 Activity 。此 Activity 的主题是 L 之前的正常主题,但对于 L 及更高版本会被覆盖,其中:

...
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/statusTrans</item>
...

此 Activity 有这样的布局(fsw 表示节点适合 SystemWindows)以提供 Material 效果。

CoordinatorLayout (fsw)
L AppBarLayout (fsw)
L CollapsingToolbarLayout (fsw)
L ImageView (fsw)
L Toolbar
L TabLayout
L ViewPager
L FAB

事情是,我通过事务添加一个全屏 DialogFragment 到这个 Activity ,通过将它添加到具有这个布局的 android.R.id.content

CoordinatorLayout (fsw)
L AppBarLayout (fsw)
L CollapsingToolbarLayout (fsw)
L FrameLayout
L Toolbar
L TabLayout
L NestedScrollView

初始布局按预期绘制了 statusBar,然后是其下方的 Toolbar(即应用了 insets),但添加的 fragment 布局直接在 statusBar 下方绘制了 Toolbar而且我似乎无法正确绘制它。

我不知道我做错了什么。这是显示问题的两个屏幕截图。

One Two

.

还有(红利问题!)

在同一个 Activity 中,我将 Viewpager 设置为具有 ScrollingViewBehavior。填充 Viewpager 的 fragment 有一个 ViewFlipper 可以切换其中之一:loadingView(ProgressBar)、contentView(RecyclerView ) 和 emptyView(LinearLayout)。这可确保如果有内容, Activity 将具有所需的滚动效果。

emptyView 出现问题是因为它没有正确居中。我附上了一张图片。

我怎样才能纠正(或破解)这种行为?

Three

最佳答案

无论您在哪里替换 fragment ,请确保它位于协调器布局中。例如,如果您的 xml 如下所示:

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="MissingPrefix">

<FrameLayout
android:id="@+id/fl_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />

然后将其包装在协调器布局中以解决问题。

关于android - fitsSystemWindows 在添加的 fragment 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36524252/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com