CoordinatorLayout 状态栏填充在片段事务期间消失

2023-12-01

使用 22.2.1 设计支持库和 API 22(尚未在早期版本上进行测试),我在片段之间切换时遇到了状态栏填充问题。初始片段加载良好,但在片段事务之后,状态栏填充消失,将所有视图推到不应该出现的位置。弹出返回堆栈后,原始片段也会发生同样的情况。旋转设备可以修复该问题,就像打开软键盘一样(但仅限纵向,横向不适用)。

初始加载或旋转后的主片段(所需)

后压后的主要片段

加载时的其他片段

旋转或键盘后的其他片段(所需)

主要片段:

<android.support.design.widget.CoordinatorLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainFragment">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</android.support.design.widget.AppBarLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    style="@style/RecyclerView"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    style="@style/Fab"
    android:src="@drawable/ic_person_add_white_24dp"
    app:backgroundTint="@color/accent_dark"
    app:borderWidth="2dp"/>

第二个片段:

<android.support.design.widget.CoordinatorLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/card_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/collapsingToolbar_height"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginBottom="@dimen/default_margin"
        app:expandedTitleMarginEnd="@dimen/sheet_expanded_title_margin"
        app:expandedTitleMarginStart="@dimen/sheet_expanded_title_margin"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    </android.support.design.widget.CollapsingToolbarLayout>

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="@dimen/default_tab_layout_height"
        app:tabGravity="center"
        app:tabMinWidth="120dp"
        app:tabMode="scrollable"/>

</android.support.design.widget.AppBarLayout>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    style="@style/Fab"
    android:src="@drawable/ic_add_white_24dp"
    app:backgroundTint="@color/accent_dark"
    app:borderWidth="2dp" />

主题将 windowDrawsSystemBarBackgrounds 设置为 true,将 statusBarColor 设置为透明。


解决了,感谢克里斯·贝恩斯.

问题是它不知道窗口插入。您必须在 onViewCreated 中请求ApplyInsets。

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    ViewCompat.requestApplyInsets(coordinatorLayout);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CoordinatorLayout 状态栏填充在片段事务期间消失 的相关文章

  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • Android NDK 中使用“dynamic_cast”时出现“UnsatisfiedLinkError”

    我是 Android 开发新手 我面临下一个问题 当我使用 C 代码时 动态演员 表达方式 不满意的链接错误 当我在模拟器上启动应用程序时出现 但是当我在没有它的情况下运行应用程序时 一切正常 我的意思是 LogCat 没有任何错误 我尝试
  • Android 上有哪些字体可用? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道安卓有一个字体集合 http www ascenderfonts com store search
  • 与其他图标相比,AppCompat ShareActionProvider 图标太大

    我将 ActionBarSherlock 更改为 AppCompat v7 我已经完成了使其工作所需的所有更改 但是共享图标 使用 ShareActionProvider 发生了一些奇怪的情况 与其他图标相比 共享图标太大 我还使用支持库进
  • GridView 中多次调用 getView()

    我的 Activity 由包含 40 多个元素的 GridView 组成 开始活动后 用户最多可以看到 15 个项目 3 行 每行 5 个项目 我在 getView 正文中编写传递给获取 View 的 LogCat 编号 Log i get
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 如何以编程方式断开拨出呼叫

    我使用以下代码以编程方式断开呼叫 但它不起作用 private void callDisconnect try TelephonyManager manager TelephonyManager this getSystemService
  • Android:应用内计费V3超时返回哪个响应码?

    出现网络超时情况时 Google Play 应用内结算服务 ice er V3 将返回哪些响应状态代码 它的所有功能都是统一的吗 我将在这里描述我的发现 我通过拔掉主机插头 在安装了全功能 GP GP Store V3 10 10 GP S
  • 应用内结算错误

    我的 UNMANAGED 应用内购买无法正常工作 在它完美运行之前 我可以使用测试帐户成功购买 但它突然不起作用了 因为我记得我对商家帐户所做的只是添加更多 2 4 个测试帐户 添加后 我的应用内购买将不起作用 所以我更新了公钥并上传了一个
  • 尝试在模拟器上安装第二个 flutter 应用程序时出错

    我创建了一个简单的 flutter 应用程序并在 android 模拟器上运行它 效果还不错 现在我创建了另一个 当我尝试在模拟器上运行它时 我得到 Error ADB exited with exit code 1 adb failed
  • 如何在进入新活动之前终止线程和处理程序

    大家好 在我尝试清理处理程序时 这段代码可能有点混乱 因为我一直在尝试追踪崩溃发生的位置 我有一个对话框活动 显示密码输入 进度条由线程和处理程序动画显示 似乎当我试图查看进度条是否完成并尝试终止线程时 当我尝试进入新活动时 我这样做的方式
  • onClick 未在带有子项的 LinearLayout 上触发

    我有一个自定义的 LinearLayout 和一个较小的 TextView 子级 我希望能够单击 TextView 未覆盖的区域 因此我将 clickable true 和 onclicklistener 设置为 LinearLayout
  • Android Studio IDE 上的“文本/设计”选项卡缺少新的 Android 项目

    如何在创建新项目期间自动创建的 Activity main xml 文件的 src main res layout 文件夹中启用文本 设计选项卡 如果我右键单击并在所述文件夹上创建 xml 文件 则设计 文本选项卡存在 有什么建议吗 谢谢
  • Vimeo 视频在 Android 6 设备上停止播放

    我正在尝试在我的应用程序中播放 Vimeo 的视频 问题是在 Android 6 设备上 视频会在一定时间后停止播放 在 API 较低的设备上一切正常 时间取决于质量 对于下面提供的网址的视频 播放一定分钟 1 到 3 视频质量有多低 播放
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • Nexus 7 (2013) 和 Win 7 64 - 尽管检查了许多论坛和在线资源,仍无法安装 USB 驱动程序

    我正在尝试设置 Nexus 7 2013 进行调试 但我在安装 USB 驱动程序的步骤中陷入困境 到目前为止 这是我尝试过的 采取的步骤 在 Nexus 7 2013 上打开调试模式 连接设备至 PC 下载 Google USB 驱动程序于
  • FCM onMessageReceived 应用程序运行时返回空白消息和标题

    正如您在标题中所写 当应用程序关闭时 它运行良好 并且onMessageReceived获取消息正文和标题 但如果应用程序处于前台模式 运行模式 则可以发送通知 但没有消息和标题 请问该怎么办 代码 Override public void
  • 安卓的限制

    我需要构建一个应用程序 该应用程序拍摄相机图像并将其上传到网络 在网络上进行一些处理并返回真 假 我在这方面遇到了一些问题 希望得到澄清 1 我的应用程序有什么方法可以知道 Android 相机捕获的图像吗 我从这里明白了什么 Androi
  • Android 自定义警报对话框中的 OnClickListener

    我是一个自学成才的初学者 感谢耐心 谢谢 在 Eclipse 中 我使用自己的 xml 文件 custom dialog 创建了一个自定义警报对话框 称为 usernamealert 如果用户尚未输入用户名 即 username lengt
  • Android:解析 XML 数据的最佳解析器 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开发一个应用程序 其中我第一次要解析来自远程服务器的 xml 文件中的数据 但我无法选择哪个解析器是有效的或最适合解析的 因为我知道主要有

随机推荐

  • vim:更改插入模式下的状态行颜色

    当我进入插入模式时 我发现这个片段可以更改状态行颜色 first enable status line always set laststatus 2 now set it up to change the status line base
  • Selenium+firefox:空的execute_script参数

    我正在尝试设置textarea使用 javascript 代替 send keys 方法来获取值 正如文档所述 我应该能够将 webelement 作为参数传递给execute script 并通过引用此参数arguments大批 但是 我
  • 谷歌可视化-条形图上的点击事件 isStacked: true

    我正在尝试显示条形图的总价值 其中 isStacked true 在 span 当我单击一个栏时位于图表顶部 我探索 google visualization events addListener 功能的参考开始here 当我单击 a 栏时
  • 连接本地MySQL数据库的Python 3.2脚本

    我正在运行 Ubuntu 服务器 我希望它有一个 Python v3 2 CGI 脚本 可以连接到我设置的本地 MySQL 数据库并运行查询 目前 我发现的唯一的东西不支持Python 3 2 请不要建议切换到早期版本的 Python 因为
  • 如何使用 python 将 .blf 数据从 CAN 转换为 .csv

    我有来自 Vector 软件的 blf 格式的 CAN 数据 为了进一步调查 我想使用 python 将其转换为 csv 格式 到目前为止我的进展 import can filename test blf log can BLFReader
  • 从 UIImagePickerController 中选取图像后崩溃(与内存泄漏有关?)

    我一直在尝试最小化我的内存占用UIImagePickerController 但我开始认为我遇到的内存问题是由于内存管理不善造成的 而不是处理内存问题的特定方法UIImagePickerController object 我的工作流程是这样
  • 如何枚举给定 Windows 进程上的套接字?

    我需要我的程序来检查给定的 Windows 进程是否正在滥用网络 我想枚举进程 tcp 和 udp 套接字 并查看它们在给定时间段内传输了多少数据 是否有 C 或 Net API 可以提供此类信息 在 Win2k 上 您可以使用 GetTc
  • android.support.v7.widget.AppCompatButton 无法转换为 android.view.ViewGroup

    我正在通过 onclick 按钮替换我的片段 但出现此错误 请帮助 这是我的详细活动片段 public class DetailActivityFragment extends Fragment TextView textView Imag
  • 无法@Override Java中的compareTo()方法

    我正在写一个BankAccount类将一堆银行帐户放入数组列表中 并根据帐号对它们进行排序 我写了compareTo 方法如下 public int compareTo BankAccount another if Integer pars
  • PHPMailer SMTP 配置

    在过去的两个小时里 我一直在网上查看是否有其他人遇到过这个问题 似乎很多人都遇到过 但没有一个答案对我有用 SMTP gt FROM SERVER 220 mx google com ESMTP vq7sm928004oeb 13 SMTP
  • Rust 中的 unwrap 是什么,它有什么用?

    我有这个代码使用 unwrap fn main let paths std fs read dir home user unwrap for path in paths println Name path unwrap path displ
  • Caffe sigmoid交叉熵损失

    我正在使用 sigmoid 交叉熵损失函数来解决多标签分类问题 如下所示本教程 然而 在他们的教程结果和我的结果中 输出预测都在范围内 Inf Inf 而 sigmoid 的范围是 0 1 sigmoid 仅在反向传播中处理吗 也就是说 前
  • 按预定义的值映射对对象数组进行排序[重复]

    这个问题在这里已经有答案了 我有以下数组 inputArray Array 0 gt stdClass Object id gt 8 1 gt stdClass Object id gt 7 2 gt stdClass Object id
  • admob 6.2.1 空指针异常

    我有一个大问题 我想将 admob 集成到我的 android 应用程序中 但是当我尝试将 admob 集成到 xml 文件中时 我在图形布局中遇到空指针异常 java lang NullPointerException at com go
  • Eclipse 插件 - 处理单步或中断时的事件

    是否有从 Eclipse 调试器接收事件通知的通用方法 具体来说 我只想知道用户何时跨过 进入以及何时命中断点 我已经在 J DT 中完成了这个工作 请参阅我的其他问题 Eclipse 调试器事件 但同样的技术在 CDT 中不起作用 我正在
  • 我无法从 RichTextValue 获取文本

    我无法从中获取文本值RichTextValue这是来自日期单元格的 目标表如下所示 date string string 我想从第一个单元格获取文本值 所以我写了这段代码 const dataRange sheet getDataRange
  • 同类指针的区别

    同一类型的两个指针的差值始终为一 include
  • grails 1.3.9 应用程序中的 EHCache 默认值

    grails 1 3 9 应用程序中 ehcache 的默认值是什么 我特别对查询缓存值感兴趣 我通过 postgres 的 psql 删除了几行 但我没有看到我的应用程序中反映的更改 我还没有将 ehcache xml 文件添加到conf
  • 列出 WordPress 标签时删除最后一个逗号

    我有以下脚本来列出没有链接的帖子标签 但它在所有标签 包括最后一个标签 后面放置了一个逗号 有什么方法可以防止脚本向列表中的最后一个标签添加逗号 我尝试研究它 但确实没有太多关于这个特定的 wp 字符串的信息 使用 rtrim 它将修剪最后
  • CoordinatorLayout 状态栏填充在片段事务期间消失

    使用 22 2 1 设计支持库和 API 22 尚未在早期版本上进行测试 我在片段之间切换时遇到了状态栏填充问题 初始片段加载良好 但在片段事务之后 状态栏填充消失 将所有视图推到不应该出现的位置 弹出返回堆栈后 原始片段也会发生同样的情况