3

我有ScrollView一个RelativeLayout作为唯一的孩子。最近我注意到该方法:

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {}

即使孩子的身高小于ScrollView身高,也会被调用,如下所示:

this 指的是 myScrollView而 rl 指的是RelativeLayout.

这是正常行为还是我错过了什么?

编辑: 我不断地添加和删除视图,RelativeLayout因此每次禁用滚动/触摸等似乎都不是一个好的解决方案。

我目前的解决方法是检查滚动是否真的改变了任何东西,如果没有,我只是忽略它:

    // in case no actual scroll has occurred - just return.
    if (t == oldt && l == oldl) {
        return;
    }
4

1 回答 1

3

这是正常行为

如果你想停止 ScrollView 滚动,那么你必须试试这个

scroll.setEnabled(false); 
scroll.setFocusable(false); 
scroll.setHorizontalScrollBarEnabled(false); 
scroll.setVerticalScrollBarEnabled(false);

希望这会奏效

于 2013-02-27T08:38:43.390 回答