如何重新加载回收视图?
How can I reload recycleview?
这是我的场景:
Viewpager
有两个 Fragment
。包括 HistoryFragment
,它在创建时加载 RecycleView
。
我继续从另一个 Activity
向数据库添加一个项目,但是,它不会刷新 RecycleView
,我需要关闭应用程序并重新加载它才能看到它刷新了。
你会如何处理?
RxJava?我如何通知听众发生了变化?或者我只是重新加载 Fragment
? (如果是,我该怎么做?)
“我通知听众改变了”你几乎自己回答了。在数据库中进行更新时,您需要使用 RecyclerView adapter's function notifyDataSetChanged()
(see this link) 以使用新数据重新加载视图的内容。
您没有提供任何代码,但我认为这是使其工作所需的缺失行
yourAdapter.notifyDataSetChanged();
使用下面的代码重新加载整个片段...
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(YourFragmentName.this).attach(YourFragmentName.this).commit();
这是我的场景:
Viewpager
有两个 Fragment
。包括 HistoryFragment
,它在创建时加载 RecycleView
。
我继续从另一个 Activity
向数据库添加一个项目,但是,它不会刷新 RecycleView
,我需要关闭应用程序并重新加载它才能看到它刷新了。
你会如何处理?
RxJava?我如何通知听众发生了变化?或者我只是重新加载 Fragment
? (如果是,我该怎么做?)
“我通知听众改变了”你几乎自己回答了。在数据库中进行更新时,您需要使用 RecyclerView adapter's function notifyDataSetChanged()
(see this link) 以使用新数据重新加载视图的内容。
您没有提供任何代码,但我认为这是使其工作所需的缺失行
yourAdapter.notifyDataSetChanged();
使用下面的代码重新加载整个片段...
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(YourFragmentName.this).attach(YourFragmentName.this).commit();