Android水平scrollView中的ListView垂直滚动

时间:2011-07-20 21:46:25

标签: android android-layout

我有一个listView的自定义ArrayAdapter,它位于水平scrollView中。水平滚动工作正常但是对于垂直滚动我不得不做一些黑客攻击。 我只是想知道它是否是一个好主意,因为listView已经针对垂直滚动进行了优化。 有没有办法滚动没有这个黑客?

hack基本上是为scrollView(父类)捕获touchEvent并将touchEvent传播到ListView。

scrolLView.setOnTouchListener(new OnTouchListener(){

        @Override
    public boolean onTouch(View arg0, MotionEvent arg1) {
            lv.setSmoothScrollbarEnabled(true);
            lv.dispatchTouchEvent(arg1);
        }
});

这会导致滚动发生并且事情有效。 我只是想知道我是否还需要考虑更多的事情。

由于

2 个答案:

答案 0 :(得分:3)

您的水平滚动视图位于父类中,因此仅对滚动视图而不是列表视图识别触摸事件。因此,如果您希望滚动列表视图,那么您所采用的方式是正确的。

答案 1 :(得分:1)

除了您的代码之外,我还将其修改为只有ScrollView和内部多个ImageView项目的地方。

ScrollView _sv = (ScrollView)findViewById(R.id.scroller);
_sv.setOnTouchListener(new OnTouchListener()
{
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        _iv.setScrollContainer(true);
        _iv.dispatchTouchEvent(event);
        return false;
    }
});
相关问题