避免在recyclerview gridlayoutmanager中滚动第一行和第一列

时间:2017-12-20 19:13:34

标签: android android-recyclerview android-tv gridlayoutmanager

为电视应用创建了双向可滚动网格布局

从布局文件中查看结构

handler.postDelayed(r, 5000);

final Runnable r = new Runnable() {
    public void run() {
        changeToOrigColor();
    }
};

所以我使用了gridlayoutmanager(方向垂直),spancount为49(24hrs * 2)+1,用于显示列的图像。 第一行是显示时间轴分为半小时广告位,第一列是显示频道,每个频道将有自己的程序在不同的时间段运行。现在我已经实现了两种方式滚动网格布局,现在我还有两件事要做。

Image of above description

1)水平滚动时,通道列(第一列)也会滚动,因此会被隐藏(它必须垂直滚动,因为可以有20多个通道)。现在我需要使这个列静态wen水平滚动,其他列必须正常滚动

2)当垂直滚动时,时间轴行(第一行)也会滚动并因此被隐藏(它必须水平滚动,因为行必须显示24小时)。现在我需要使这行静态wen垂直滚动,其他行必须正常滚动。

这有可能实现吗?感谢您的帮助

2 个答案:

答案 0 :(得分:6)

可行的方法是采用三种循环视图

a)频道列表的垂直回收视图

b)时间列表的水平循环视图

c)使用网格布局管理器为数据回收视图

使用网格循环视图的scrollChange侦听器(用于数据的循环视图)

/**
 * Use scroll values
 */
public void setScroll() {
    mDataRecycleView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
        @Override
        public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
          //you can now play on scroll value of this recycle view and    change the scroll value of other recycle views.

   // you can get your view here and also know the value of view so based on value you can handle it here so it's very easy.
        }
    });
}

请尝试让我知道这种方法是否适用于您,并提出任何查询,然后在下方发表评论,以便我们解决您的问题。

答案 1 :(得分:3)

从Github尝试 TableView 项目。

  

TableView是一个功能强大的Android库,用于显示复杂数据   结构和呈现由行,列和组成的表格数据   细胞。 TableView依赖于一个单独的模型对象来保持和   代表它显示的数据。该存储库还包含一个示例   该应用程序旨在向您展示如何创建自己的TableView   你的申请。

从这个项目中获取概念并修改你想要的内容。

希望这个解释可以帮助你:)