我正在创建一个类似于 EPG 的视图,其中我有多个水平视图RecyclerView
s(如电视节目)封装在 LinearLayout 内。当我滚动 RecyclerView 之一时,我希望其余视图一起滚动。
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
layoutContent.setWeightSum(epg.getChannels().size());
//prepare recycler views and add into layoutContent based on epg channels
for(EPG.Channel ch : epg.getChannels()){
AppLog.error(TAG, "Creating RecyclerView for: " + ch.getDisplayName());
//create new recycler view
final RecyclerView rv = new RecyclerView(layoutContent.getContext());
lstRecyclerViews.add(rv);
//set layout manager
rv.setLayoutManager(new LinearLayoutManager(layoutContent.getContext(), LinearLayoutManager.HORIZONTAL, false));
//create adapter
rv.setAdapter(new MyAdapter(ch.getPrograms()));
rv.setItemAnimator(new DefaultItemAnimator());
//add into parent layout
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0);
lp.weight = 1;
layoutContent.addView(rv, lp);
}
}
我尝试在我的视图中添加滚动侦听器,但我很困惑RecyclerView.OnScrollListener
's 滚动时方法,因为我不知道如何滚动其他视图。
任何帮助/建议都会有帮助。
水平滚动视图
{
线性布局
{
水平回收器视图的垂直列表,
覆盖水平回收器视图的 LayoutManager
canScroolhorizontally() 方法返回 false ,以便它们
所有内容都根据祖级 ScrollView 一起滚动。
}
我们的主要重点是水平滚动水平回收器视图的垂直列表,
首先我试图将它们全部保持在水平滚动视图上,但这是 Android 系统明确拒绝的,
所以我保留了一种线性布局(在我的例子中是垂直方向)作为中介。
因此,epg 网格现在可以垂直滚动(因为它们位于一个垂直回收器视图内),也可以水平滚动(因为水平滚动视图)。
而且我们不应该允许水平列表独立滚动,所以我扩展了布局管理器并禁止水平滚动,现在它们只在祖父滚动下滚动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)