Sri*_*lla 35 android android-layout android-listview
我有一个自定义ViewSwitcher,我实现了触摸事件,所以我可以使用触摸屏滚动屏幕.
我的布局层次结构如下所示:
<ViewSwitcher>
<LinearLayout>
<ListView />
</LinearLayout>
<LinearLayout>
<ListView />
</LinearLayout>
</ViewSwitcher>
Run Code Online (Sandbox Code Playgroud)
现在,问题是触摸事件正被消耗
ListViews,我无法切换视图.当我没有时,它工作正常ListViews.我需要能够滚动浏览视图并滚动查看ListView.
我该如何解决这个问题?
编辑:我还需要ListView可点击的项目.
提前致谢!
Sri*_*lla 78
谢谢大家回答这个问题.但我能够以更简单的方式解决这个问题.由于我ViewSwitcher没有检测到触摸事件,我拦截了触摸事件,称为onTouchEvent()并返回false.这里:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
onTouchEvent(ev);
return false;
}
Run Code Online (Sandbox Code Playgroud)
通过覆盖onInterceptTouchEvent(),我能够拦截活动中的触摸事件.然后我叫onTouchEvent()在ViewSwitcher它处理的切换ListViews.最后通过返回false,它确保ViewGroup不消耗事件.
mac*_*Jun 10
将子视图的TouchEvent传递给父视图的最简单方法是将其添加到子视图:
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
return false;
}
Run Code Online (Sandbox Code Playgroud)
在我的父布局中,我发现阻止孩子捕获触摸事件的唯一方法是覆盖 onInterceptTouchEvent 以返回 true。
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
return true;
}
Run Code Online (Sandbox Code Playgroud)