我正在开发一个使用可扩展列表视图作为其父视图的应用程序,并且在每个子视图中都有一个基于数据库信息动态加载的水平滚动视图。
HSV中的所有按钮都是使用与lazy loading in listview非常相似的实现动态添加的复合图像。我能够add arrows到我的HSV,但现在我想更进一步,只有当有足够的物品来填充空间时才显示箭头,这样如果只显示一个项目则没有箭头应该显示。
由于列表从头开始,我可以默认隐藏“后退”箭头,但我不确定在哪里测试是否显示“前进”箭头。
public Object getGroup(int groupPosition) {
Object o;
o = groups.get(groupPosition).getName();
if(relativeLayout != null && horizontalScrollView != null && forward != null) {
if(horizontalScrollView.getWidth() < relativeLayout.getWidth()) {
forward.setVisibility(View.VISIBLE);
} else {
forward.setVisibility(View.INVISIBLE);
}
}
// }
return o;
}
最初我在getChildView中使用了这个测试,其中填充了HorizontalScrollView,但它发生得太快,并且HSV和relativelayout显示宽度为零。
现在我在getGroup中测试它,因为它在childview开始加载后被多次调用,但我认为这只有效,因为我的可扩展列表中有很多组。如果我有一个小组,我仍会遇到同样的问题。
是否有理想的位置来检查子布局是否大于horizontalscrollview?
更新:我设置了一个计时器,每隔1000毫秒检查一次,看看是否应该转发前进然后退出。它不漂亮,但它的工作原理没有崩溃的应用程序,所以我很高兴。抱歉这个坏问题!
答案 0 :(得分:0)
我正在通过 onTouch事件检查滚动位置:
horizontalScrollView.setOnTouchListener(actualScrollViewTouch);