0

我正在开发一个使用可扩展列表视图作为其父级的应用程序,并且在每个子视图中都有一个基于数据库信息动态加载的水平滚动视图。

HSV 中的所有按钮都是使用与listview 中的延迟加载非常相似的实现动态添加的复合图像。我能够向我的 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 中使用了这个测试,其中填充了 Horizo​​ntalScrollView,但它发生得太快了,机器人 HSV 和 relativelayout 显示宽度为零。

现在我正在 getGroup 中对其进行测试,因为在子视图开始加载后会多次调用它,但我认为这仅适用于我的可扩展列表中有很多组。如果我有一组,我仍然会遇到同样的问题。

是否有一个理想的地方来检查子布局是否大于水平滚动视图?

更新:我设置了一个计时器,每 1000 毫秒检查一次,看看是否应该将 forward 变为可见然后退出。它不漂亮,但它可以在不使应用程序崩溃的情况下工作,所以我很高兴。抱歉问了个不好的问题!

4

1 回答 1

0

我正在通过onTouch 事件检查滚动位置:

horizontalScrollView.setOnTouchListener(actualScrollViewTouch);
于 2012-06-13T14:39:40.163 回答