让两个RecyclerView一起滑动

2018-06-21 遇到的一点小问题
之前有个界面做类似表格的小功能,GitHub随便找了个表格控件,但使用了发现坑特多,改个小细节要改的东西不少,高度边距调整也很麻烦。
就自己用LinearLayoutRecyclerViewHorizontalScrollViewTextView、、、弄了个简单的。

TableView

没什么难点,就是有几个需要注意的地方。第一个就是左右两个RecyclerView联动。有一个滑动时,另一个也滑动相应距离。

        leftRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
            }
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                if (RecyclerView.SCROLL_STATE_IDLE != recyclerView.getScrollState()) {
                    rightRecycler.scrollBy(dx, dy);
                }
            }
        });
        rightRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
            }
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                if (RecyclerView.SCROLL_STATE_IDLE != recyclerView.getScrollState()) {
                    leftRecycler.scrollBy(dx, dy);
                }
            }
        });

然后就是右边表格的宽度。为了省事,使用的HorizontalScrollView获得左右滑动的能力。然后上下分别使用
RecyclerView展示数据。这样很省事,不过需要根据TextView数量给RecyclerView设置固定宽度。因为TextView宽度是设置的固定的,所以比较省事。记录一下,之前忘记设置了。

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) topRecycler.getLayoutParams();
params.width = TextView宽度*数量;
topRecycler.setLayoutParams(params);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,503评论 25 709
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,029评论 3 119
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,735评论 0 17
  • win10常用快捷键 【Win+A】 呼叫操作中心,也就是我们常说的通知面板。 【Win+C】 呼叫Cortana...
    shog808阅读 375评论 0 0
  • 在顺利的通过了大排畸和糖耐测试后,我的肚子也是真的比第一胎大很多,也许是因为年纪也稍长了几年的缘故,做一些下蹲...
    肉圆姐姐阅读 486评论 0 0