如何在ScrollView中滑动垂直SeekBar

时间:2013-08-09 07:22:01

标签: android android-layout android-scrollview android-event

我通过覆盖onDraw方法并将其翻转90度来制作垂直SeekBar。 现在我需要把它放在ScrollView中。

实际的布局结构是

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

是否可以确保ScrollView无法获取我的搜索栏的触摸事件?

2 个答案:

答案 0 :(得分:11)

试试这个:

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;
        }
    });

在上面的代码中,我在scrollview中使用了listview滚动,你可以像这样使用

答案 1 :(得分:0)

尝试此方法

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

并在

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

它将阻止ScrollView获得焦点,并通过VerticalSeekbar获得焦点。