滚动页面时,onBindViewHolder()没有调用。
由于Scrollview,mAdapter.notifyDataSetChanged()未正确更新数据。我在Recycler中只检查了3个Checkbox。加载第二组数据并调用通知程序后,更多的复选框被无关紧密地检查,数据仍然正确地来自Model类。
由于安全原因,我无法在此处分享代码。 我已经花了一天时间来解决问题。尚未修复。
然后我尝试删除了scrollview,它有效。
我还有另外几个视图适合滚动条。所以我添加了作为布局并添加到Recycler的第一个位置。有效。但是,只要我想要那个时候就应该来自片段。有没有办法以这种方式解决。
答案 0 :(得分:0)
我认为您应该将ScrollView
替换为android.support.v4.widget.NestedScrollView
例如:
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true" >
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" >
<!-- Place RecyclerView in here-->
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
答案 1 :(得分:0)
@Ogande,谢谢。我试过你的代码。同样的事情正在发生。所以我尝试了不同的解决方案,就像我在问题中提到的那样。
我删除了scrollview并仅保留了Recyclerview。
我在适配器中添加了两个布局。因此,每当我想添加新布局时,我将片段中的布尔值传递给适配器为true,并且在开始时所有位置都将默认值设置为false。因此,notifychanged()
将反映对具有该新布局的适配器的更改。
它按照我的预期很好地工作。