如何解决如果使用嵌套的recyclerView,如何从适配器的第1个位置从recyclerView的arraylist加载第0个数据?
我正在开发一个需要在recyclerView内部显示recyclerView的应用程序。 现在,recyclerView内部的recyclerView是基于条件的。如果我们那里有innerRecyclerView的数据,则只需要显示它,否则就不需要显示它。
这里我面临的问题如下:
在第一位置,我已经准备好显示/隐藏内部recyclerView的条件,
然后在休息状态下,主recyclerView会正确加载数据。
现在在recyclerView的第0位置,如果我在其中显示innerRecyclerView,则它们在外部recyclerView的第1位置将加载ArrayList的第1位置的数据,而它应从ArrayList的第0位置开始。 因此,这里跳过了ArrayList的第0个数据,并从recyclerView的第1个位置加载了数据。
有什么方法可以从ArrayList的recyclerView的第1个位置加载第0个数据吗?
代码的逻辑如下:
@Override
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder viewHolder,final int position) {
if (viewHolder instanceof HomeViewHolder) {
if(position == 0} {
// Data for the innerRecyclerView is available:
if(recentList.size() > 0 ) {
// Show innerRecyclerView..
// Load data for the inner recyclerview.
} else {
// Hide the inner recyclerView..
}
} else {
// Load the data for the outer recyclerView with the rest of the position..
// If we are showing the innerRecyclerView then it will start only loading the data from the position 1 from the array list..
}
}
}
请考虑以下屏幕设计:
如果您对此问题有任何疑问,请告诉我。
解决方法
因此,由于只需要在第0个位置显示innerRecyclerview。为什么不只将innerRecyclerview移出externalRecyclerview?
当将innerRecylcerview堆栈放在outterRecylerview顶部时。您可以这样做:
让我们叫outterlist = mainList,而innerList = horizontalList
例如,您有一个mainList填充了externalRecyclerview。现在 您需要做的就是
if(!mainList.isEmpty()){
if(MainList.get(0) == "the condition"){
// show the horizontal recylcerview stuff.
} else { // hide the horizontal recyclerview }
}
// continue on to setup the mainRecylerview
这将帮助您避免混乱的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。