我在查找滚动结束的确切位置时遇到问题。我有一个tablelayout(这个特别的有一行和35列)。 tablelayout位于horizontalscrollview内。我使用imageview填充行的所有相同的高度,宽度和边距。我正在使用dpad控件来导航行。我有一个可绘制的背景,基本上是一个盒子。该视图位于tablelayout行的第一项出现的位置。所以当看到第一个项目在框中时。当我按下dpad时,行从左向右移动,当前聚焦的项目移动到框内。当然,如果我按下dpad,行会从右向左移动。我的问题是,我似乎无法让行一次滚动一个图像或列。第一次按下我确实得到第1列,但是下一次按下我得到滚动到第6列。每次按下该行滚动但不是一次滚动。我已经尝试过scrollto和scrollby,但没有运气。我认为我应该能够获得当前的scrollx位置,只是添加行中的子项宽度,但我错了。我可以获得一些指导,使滚动一次移动一列吗?感谢
popindex++;
TableRow row = (TableRow) mytable.getChildAt(0); //GET ROW OF TABLE
int sx=row.getChildAt(popindex).getWidth(); //GET CHILD WIDTH IN ROW @ INDEX
mytable.scrollto(mytable.getScrollX()+sx, 0);
答案 0 :(得分:0)
好吧,我没有使用滚动来获得所需的效果,而是选择使用setColumnCollapsed。我知道它可以通过滚动效果完成,但这对我来说同样适用。如果其他人遇到同样的情况并希望这样做,这就是我所做的。
List<Integer>colarray=new ArrayList<>();
index++;
colarray.add(index)
for(int i=0; i<colarray.size(),i++){
mytable.setColumnCollapsed(i, true)
}