我需要创建具有水平和垂直滚动的大表。该表的每个单元格都应该是可点击的。
要说清楚这是我想要实现的目标。中心的可滚动区域,空单元格和带数字的单元格应该是可点击的。
我尝试了不同的方法,但最终都失败了:
GridView
:
问题: gridview
元素是可点击和可滚动的,但滚动只是垂直的。HorizontalScrollView
位于VerticalScrollView
,LinearLayout
代表表格行,位于HorizontalScrollView
。程序构建表逐行添加新的Linearlayouts
。通过将坐标设置为TouchEvent
中的滚动视图,可以在父布局中手动实现滚动。我正在使用自定义 ScrollViews ,它在ontouchevent中返回false以设置父级中的坐标。滚动工作正常,但是当我们将onClickEvent附加到单元格(textview)时,它会中断。单击有效,但滚动不起作用。我尝试过这种方法的不同修改(onintercepttouchevent),但最好的结果是在滚动后滚动导致点击。表格标题也应垂直固定。 第一列和最后一列应水平固定。 我想知道Google是如何在 Google文档应用中做到这一点的。他们的桌子完全可滚动和可点击。
答案 0 :(得分:0)
我找到了工作解决方案。而不是OnTouchEvent
我使用onScrollChanged
和onHorizontalScrollChanged
进行手动滚动。使用这种方法,单击工作正常但不能对齐滚动,因为事件参数 x 在onScrollChanged
中始终为0(在onHorizontalScrollChanged
中相反)。