【问题标题】:How can I slide a vertical SeekBar in a ScrollView如何在 ScrollView 中滑动垂直 SeekBar
【发布时间】:2013-08-09 07:22:01
【问题描述】:

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

实际的布局结构是

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

是否可以确保 ScrollView 没有收到我的 seekbar 的触摸事件?

【问题讨论】:

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


    【解决方案1】:

    试试这个:

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

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

    【讨论】:

      【解决方案2】:

      试试这个方法

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

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

      它将阻止 ScrollView 获得焦点,焦点是由 VerticalSeekbar 获得的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多