0

我需要创建具有水平和垂直滚动的大表。该表的每个单元格都应该是可点击的。

为了清楚起见,这是我正在努力实现的目标。中心的可滚动区域、空单元格和带有数字的单元格应该是可点击的。

我想要达到的目标

我尝试了不同的方法,但最终都失败了:

  1. GridView: 问题: gridview元素是可点击和可滚动的,但滚动只是垂直的。
  2. HorizontalScrollView被放置在 中VerticalScrollView,而LinearLayout代表表格行的 被放置在 中HorizontalScrollView。并且程序构建的表Linearlayouts逐行添加新的。通过将坐标设置为滚动视图,在父布局中手动实现滚动TouchEvent。我正在使用在 ontouchevent 中返回 false 的自定义ScrollViews来设置父级中的坐标。滚动工作正常,但是当我们将 onClickEvent 附加到单元格(文本视图)时,它会中断。单击有效,但滚动无效。我尝试了这种方法的不同修改(onintercepttouchevent),但最好的结果是滚动导致滚动后点击。

表头也应该垂直固定。第一列和最后一列应水平固定。我想知道 Google 是如何在Google Docs 应用程序中做到这一点的。他们的表格是完全可滚动和可点击的。

4

1 回答 1

0

我找到了工作解决方案。而不是OnTouchEvent我使用onScrollChangedandonHorizontalScrollChanged进行手动滚动。使用这种方法,单击可以正常工作,但不能对角滚动,因为事件参数x始终为 0 in onScrollChanged(并且相反 in onHorizontalScrollChanged)。

于 2013-09-05T12:39:48.660 回答