我有一个webView
并且webView
一个button
。我在webview
上发现了触摸事件:webView.setOnTouchListener(this);
。
@Override
public boolean onTouch(View v, MotionEvent event) {
if (ADS_VIDEO.contains(v.getId()) && v.getId() == R.id.webView
&& event.getAction() == MotionEvent.ACTION_DOWN) {
intentVideo = new Intent(getBaseContext(),
AdVideoActivity.class);
startActivity(intentVideo);
}
return false;
}
我的按钮也有这个:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.setVisibility(View.GONE);
button.setVisibility(View.GONE);
}
});
我的问题是当我点击button
时,webView
的事件已启动,而不是与该按钮关联的事件。
更新:
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:padding="0dip"
android:id="@+id/relativeForWeb" >
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:contentDescription="@string/descr_image"
/>
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
<Button
android:id="@+id/bt"
android:layout_width="42dip"
android:layout_height="42dip"
android:text="x"
android:background = "@drawable/roundedbutton"/>
<WebView
android:id="@+id/webView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
答案 0 :(得分:1)
因为WebView位于layout.xml中的Button之后,所以它位于上面它(RelativeLayout根据它们在layout.xml中的顺序设置其视图的z顺序)。 因为webview位于按钮上方,所以它首先获取触摸事件并消耗它。
只需在layout.xml中的按钮声明之前移动webview声明,就可以了。
像这样:
<?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:padding="0dip"
android:id="@+id/relativeForWeb" >
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:contentDescription="@string/descr_image"
/>
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
<WebView
android:id="@+id/webView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/bt"
android:layout_width="42dip"
android:layout_height="42dip"
android:text="x"
android:background = "@drawable/roundedbutton"/>
</RelativeLayout>