我正在寻找一种方法来禁用webview上的触摸,但保留它的缩放和滚动功能。三个星期我搜索了很多并测试了几种方法: Android disable WebView touch but keep zooming/scrolling 不幸的是,问题尚未解决。这是我的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/Main22Activity"
tools:context="com.example.hashemisara.myapplication0.MainActivity">
<WebView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/webView"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:focusable="true" />
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar"
android:height="76dip"
android:width="76dip"
android:endColor="#000000"
android:startColor="@android:color/black"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="visible"
/>
</RelativeLayout>
这是我在create method中的代码:
scroll=false;
ourBrow.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(final View v, final MotionEvent event) {
single_touch=false;
if (event.getAction() == MotionEvent.ACTION_MOVE) {
scroll=true;
}
else if (event.getAction() == MotionEvent.ACTION_UP) {
if(scroll==true)
single_touch=false;
else {
single_touch=true;
scroll=false;
}///else
}///if
return single_touch;
}
});
似乎单次点击是以acton_down开始的,并以action_up结束。虽然滚动事件由一个action_down,几个action_moves和一个action_up组成。 如果检测到移动动作,则上述方法返回false,如果仅检测到action_down和action_up,则返回true,这意味着检测到单击。根据我的调查,如果touchlistener返回true,则表示该操作被禁用。但是,使用上面的代码,缩放和滚动已完成,但仍然没有禁用单击事件! 请帮我解决这个问题。