android - 折叠工具栏和片段布局不能一起工作

2023-12-15

在我的应用程序中,我有两个片段和一个 MainActivity。 Activity_main.xml 包含一个折叠工具栏,当片段为空时,它非常适合我。在我的第一个片段中,我从服务器获取 json 数据并将其放入片段活动内的列表视图中。数据已正确获取并显示,但列表视图占据整个屏幕,而我的折叠工具栏似乎有点问题,就像有时它会弹出并消失,并且我的列表视图不再可滚动。这两项活动根本无法协同工作。有没有办法让他们一起工作? 我的activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<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.design.widget.AppBarLayout
        android:id="@+id/appBar"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">


        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:expandedTitleGravity="center|bottom"
            app:expandedTitleMarginBottom="56dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:toolbarId="@+id/toolbar">


            <ImageView
                android:id="@+id/backg"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                android:src="@drawable/backthree"
                app:layout_collapseMode="parallax" />


            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?android:attr/actionBarSize"
                android:layout_marginBottom="48dp"
                android:gravity="right"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />


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

    <FrameLayout
        android:id="@+id/frame_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/navigation"
        android:animateLayoutChanges="true">


        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white"
            android:text="TextView" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:textColor="@android:color/white"
            android:text="TextView" />

    </FrameLayout>

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </RelativeLayout>

    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom"
        android:background="@android:color/white"
        app:itemIconTint="@android:color/darker_gray"
        app:itemTextColor="@android:color/darker_gray"
        app:menu="@menu/navigation" >

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

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

我的fragment_first.xml:

<RelativeLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorGrayHell"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp">

        <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/swipe_refresh_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".MainActivity">

            <ListView
                android:id="@+id/list"
                android:layout_marginLeft="7dp"
                android:layout_marginRight="7dp"
                android:layout_marginTop="10dp"
                android:layout_width="fill_parent"
                android:background="@android:color/white"
                android:dividerHeight="10dp"
                android:divider="@color/colorGrayHell"
                android:layout_height="wrap_content" />

        </android.support.v4.widget.SwipeRefreshLayout>

    </RelativeLayout>

</RelativeLayout>

您还没有提到片段附加在哪里 - 我假设在 NestedScrollView 中?如果没有,那就是他们应该去的地方。

问题很可能是片段中的 ListView - 与 RecyclerView 不同,它没有实现折叠工具栏功能所需的 NestedScrollingChild2 和 ScrollingView。

将 ListView 替换为 RecyclerView 并确保片段位于具有以下内容的 NestedScrollView 内:app:layout_behavior="@string/appbar_scrolling_view_behavior"它应该有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android - 折叠工具栏和片段布局不能一起工作 的相关文章

随机推荐

  • 从组合框中获取所选项目或输入文本的最佳方式

    我有一个组合框 我预先填充了许多可能的选择 但我还希望打开该选项 供用户手动输入不属于选项之一的文本 因此 我将 DropDownStyle 设置为 DropDown 这样这是可能的 我的问题是 编写代码以返回用户选择或手动输入的值的最有效
  • Git - 如何查找特定分支的第一次提交

    在以下示例树中 A B C D E master branch F G H xxx branch 我正在寻找 F xxx 分支中的第一个提交 我认为有可能 git log xxx not master 最后列出的提交应该是 F 这是正确的解
  • 获取 JSF2 复合组件的父组件的 clientId

    我有以下代码
  • 保存和加载对象以及使用 pickle

    我正在尝试使用保存和加载对象pickle模块 首先我声明我的对象 gt gt gt class Fruits pass gt gt gt banana Fruits gt gt gt banana color yellow gt gt gt
  • documentdb 语法错误上的自连接

    我在 documentdb 上执行 SQL 有效自连接查询时遇到问题 所以下面的查询有效 SELECT FROM c AS c1 WHERE c1 obj car 但这个简单的自连接查询并没有 SELECT c1 url FROM c AS
  • 有没有办法在 JavaScript 中读取二进制数据?

    我想将二进制数据注入到 JavaScript 中的对象中 有没有办法做到这一点 i e var binObj new BinaryObject 101010100101011 有这样的效果 任何帮助都会很棒 您可以使用 parseInt v
  • MVC3 中没有母版页的渲染视图

    我的网站上有一些视图需要包含在起始页上 但是 仅使用 Html Renderaction 即可呈现母版页和整个 shebang 我将如何渲染内容 有几种方法 确保您从控制器返回 PartialView return PartialView
  • 构造函数参数的数量取决于整数模板

    我正在编写一个包装私有的容器存储类模板std array为了给它添加一些功能 该模板参数化值的数量 如下所示 template
  • 指定 mysqli bind_param 类型

    指定 mysqli bind param 类型的优点和缺点是什么i d s b 我将 UNIX 时间戳存储在数据类型为 INT 的数据库列中 在我准备好的声明中 我将其设置为bind param s timestamp 并且它存储值没有任何
  • 在给定索引和值列表的嵌套 Python 字典中设置值

    我正在尝试以编程方式在字典中设置一个值 可能是嵌套的 给定索引列表和值 例如 假设我的索引列表是 person address city 其值为 New York 我想要一个像这样的字典对象 Person address city New
  • 使用 JavaFX 播放 Youtube 视频

    我正在尝试使用 javaFX 播放 youtube 上的视频 这是我的代码 public class Main extends Application public static void main String args launch a
  • TypeScript 中“声明类”和“接口”有什么区别

    在 TypeScript 中 创建 d ts 源声明文件时 哪个更好 为什么 declare class Example public Method void or interface Example Method void 我可以看出的区
  • 如何从 lxc 挂载文件夹

    我有 lxc 它有一个正在运行的应用程序 要在自己的计算机 Ubuntu 13 10 上编辑此应用程序的代码 我想挂载一个目录lxc 如何才能做到这一点 例如 var lib lxc ubuntu 12 04 rootfs home 安装在
  • 简单密码程序中的错误(cryptography.fernet.InvalidToken)

    我正在用 Python 编写一个简单的密码程序 对于 Python 来说是新的 对于加密来说甚至是新的 其中用户帐户和密码被保存在字典中的文件中 我正在使用 Fernet 模块加密密码 添加用户工作正常 但是当我尝试解密密码时 我得到了cr
  • 我在使用 imwrite 时遇到错误

    我是图像处理新手 我想做的是调整图像大小并将其存储为 tif 格式 但命令窗口报告错误 您没有写入权限 我的代码是imwrite B myNewFile tif 运行后显示 使用 imwrite 时出错 第 10 行 无法打开文件 myNe
  • 从字符串末尾开始每 2 个字符之间添加一个空格

    我想在字符串末尾的每两个字符之前添加空格 str 9010201 结果应该是9 01 02 01 I tried chunk split and str split 但它仅从字符串的开头起作用 而从最后一个不起作用 使用简单strrev a
  • 在 Xcode 6 中选择不同的模拟器

    如何在 Xcode 6 中选择不同的模拟器 iOS 8 除外 我已经成功安装了 iOS 7 模拟器Xcode gt 首选项 gt 下载 但它没有在可用的运行模拟器中列出 有人知道如何在 Xcode 6 中安装 iOS7 模拟器吗 一旦安装了
  • 如何在 Java 中使用 .Net 程序集

    我想在 Java 应用程序中使用 Microsoft Net 程序集 有什么办法可以做到这一点吗 任何帮助将不胜感激 Java 和 Net 运行完全不同的系统 分别是 JVM 和 CLR 不可能直接将一个加载到另一个中并使用它 它们是不兼容
  • 如何将JSON字符串转换为Java对象的List?

    这是我的 JSON 数组 firstName abc lastName xyz firstName pqr lastName str 我的 String 对象中有这个 现在我想将它转换为Java对象并将其存储在java对象的List中 例如
  • android - 折叠工具栏和片段布局不能一起工作

    在我的应用程序中 我有两个片段和一个 MainActivity Activity main xml 包含一个折叠工具栏 当片段为空时 它非常适合我 在我的第一个片段中 我从服务器获取 json 数据并将其放入片段活动内的列表视图中 数据已正