【问题标题】:Android Vertical scrolling for ListView inside Horizontal scrollView水平滚动视图内ListView的Android垂直滚动
【发布时间】:2011-07-20 21:46:25
【问题描述】:

我有一个用于列表视图的自定义 ArrayAdapter,它位于水平滚动视图中。水平滚动工作正常,但对于垂直滚动,我不得不做一些技巧。 我只想知道这是否是个好主意,因为 listView 已经针对垂直滚动进行了优化。? 有没有办法在没有这个 hack 的情况下滚动?

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

scrolLView.setOnTouchListener(new OnTouchListener(){

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

这会导致滚动发生并且一切正常。 我只是想知道是否还有其他一些事情需要考虑。

谢谢

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    您的水平滚动视图在父类中,因此只能识别滚动视图而不识别列表视图的触摸事件。因此,如果您希望列表视图滚动,您所做的方式是正确的。

    【讨论】:

    • 我看到的唯一问题是,如果我想对角滚动它不会发生............任何技巧......我没有得到触摸事件...
    【解决方案2】:

    除了你的代码,我已经将它修改为里面只有一个 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;
        }
    });
    

    【讨论】:

    • 嗨,它没有帮助我。如果您知道任何其他程序,请恕我直言。
    猜你喜欢
    • 2013-07-18
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2015-12-21
    • 2015-01-27
    • 1970-01-01
    • 2014-12-09
    • 2023-04-07
    相关资源
    最近更新 更多