当前位置: 首页 > 知识库问答 >
问题:

正在保存NestedScrollView的滚动状态

雍马鲁
2023-03-14

我的应用程序围绕一个HomeActivity,它在底部包含4个选项卡。这些选项卡中的每一个都是一个片段,所有的选项卡从一开始就被添加(而不是替换),并且在点击相应的选项卡时被隐藏/显示。

我的问题是,每当我更改tab时,我的卷轴的状态就会丢失。显示该问题的每个片段都使用android.support.v4.widget.NestedScrollView(参见下面的示例)。

注意:由于某种原因,我的使用RecyclerView或ListView的片段保持了它们的滚动状态。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_appbar_title" />

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- Content -->

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

</LinearLayout>

我读了几篇关于保存实例状态的文章(例如这篇,那篇),它们的解决方案要么在我的场景中不起作用,要么在我需要修改4-12个不同的片段以使其工作的情况下不实用。

让嵌套滚动视图在片段更改时保持滚动位置的最佳方法是什么?

共有1个答案

佴保臣
2023-03-14

我在inthecheesefactory上找到的一个解决方案是,缺省情况下,片段的状态被保存(从EditText中的输入到滚动位置),但前提是必须为xml元素提供ID。

在我的例子中,只需向NestedScrollView添加一个ID就可以解决问题:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_appbar_title" />

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/NestedScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- Content -->

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

</LinearLayout>
 类似资料:
  • 我有底部的导航栏和视窗内的协调器布局,视窗内的每个片段都有自己的折叠工具栏, 但是对我不起作用。 我也不想做通过监听我嵌套的滚动视图(内部片段),因为它没有动画。 我的活动 其中一个片段(在内容视图中有一个嵌套的scrollview。我设置了它的布局行为) 这些链接不起作用在滚动上隐藏/显示底部导航视图 使用AppBarLayout在协调布局中滚动时显示/隐藏底部导航视图 当滚动底部导航栏不隐藏时

  • 我已经为recyclerView创建了一个适配器和ViewHolder。我将itemView的imageButton绑定到Viewholder中。并在onBindViewHolder中设置了onClickListener。 一切正常,但问题是,当我向下滚动列表时,imageButton的选定状态会因选定项目而改变,列表底部的一些项目已显示为选中。 下面是一些代码 适配器类 接口类 活动内的接口回调

  • 我有一个简单的折叠工具栏布局xml,如下所示: 一切都很好,直到我尝试从底部快速滚动到顶部(从嵌套滚动视图内容到CollapsingToolbarLayout),并且嵌套内容覆盖图像,这太可怕了。我一直在尝试我找到的所有选项,但似乎没有任何效果。 我的所有库都根据文档进行了更新,基本代码来自一些基本示例,这些示例似乎对每个人都适用。 有人能帮我解决这个问题吗? 我提供了一些图片来更好地解释问题:

  • 我有一个学生列表视图,每个行项目上都有一个开关和复选框以供学生出勤。我想保留滚动期间的开关框和复选框更改。我尝试了这种方法,但没有成功: 出勤率创建新.cs具有以下代码部分 谢谢。