我通过重写 onDraw 方法并将其翻转 90 度,制作了一个垂直的 SeekBar。现在我需要把它放在一个 ScrollView 中。
实际的布局结构是
<ScrollView>
<RelativeLayout>
...
<LinearLayout>
<com.mypackage.VerticalSeekBar/>
是否可以确保 ScrollView 没有获得我的搜索栏的触摸事件?
我通过重写 onDraw 方法并将其翻转 90 度,制作了一个垂直的 SeekBar。现在我需要把它放在一个 ScrollView 中。
实际的布局结构是
<ScrollView>
<RelativeLayout>
...
<LinearLayout>
<com.mypackage.VerticalSeekBar/>
是否可以确保 ScrollView 没有获得我的搜索栏的触摸事件?
尝试这个 :
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
focusable="false"
focusableInTouchMode="false" >
而在
<LinearLayout or in VerticalSeekBar
focusable="true"
focusableInTouchMode="true" >
它将阻止 ScrollView 获得焦点,并且焦点由 VerticalSeekbar 获得。