1

我通过重写 onDraw 方法并将其翻转 90 度,制作了一个垂直的 SeekBar。现在我需要把它放在一个 ScrollView 中。

实际的布局结构是

<ScrollView>
  <RelativeLayout>
     ...
     <LinearLayout>
       <com.mypackage.VerticalSeekBar/>

是否可以确保 ScrollView 没有获得我的搜索栏的触摸事件?

4

2 回答 2

12

尝试这个 :

ListView lv = (ListView)findViewById(R.id.myListView);  // your listview inside scrollview

    lv.setOnTouchListener(new ListView.OnTouchListener() 
    {
        @Override
        public boolean onTouch(View v, MotionEvent event) 
        {
            int action = event.getAction();
            switch (action) 
            {
            case MotionEvent.ACTION_DOWN:
                // Disallow ScrollView to intercept touch events.
                v.getParent().requestDisallowInterceptTouchEvent(true);
                break;

            case MotionEvent.ACTION_UP:
                // Allow ScrollView to intercept touch events.
                v.getParent().requestDisallowInterceptTouchEvent(false);
                break;
            }

            // Handle ListView touch events.
            v.onTouchEvent(event);
            return true;
        }
    });

在上面的代码中,我在滚动视图中使用了列表视图滚动,你可以这样处理

于 2013-08-09T07:41:34.323 回答
1

试试这个方法

<ScrollView  
focusable="false" 
focusableInTouchMode="false" >

而在

<LinearLayout or in VerticalSeekBar
focusable="true" 
focusableInTouchMode="true" >

它将阻止 ScrollView 获得焦点,并且焦点由 VerticalSeekbar 获得。

于 2015-06-02T14:46:54.633 回答