【问题标题】: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 获得的。