6

我的问题很简单:如何禁用 Android 视图上的任何事件?(包括删除它的可聚焦性,就像我只是希望它在视觉上存在但在其他所有东西上都不存在)它是否适用于整个视图树?(例如,如果我在根上禁用事件,所有事件都将为其子级禁用?)。

现在,在你说什么之前,我已经尝试了以下所有方法:

这些方法似乎都不起作用,认真的。

我已经直接在 aWebView以及所有内容的父布局上尝试过它们,但我仍然能够与之交互。

任何的想法?

谢谢!

编辑#1

在需要禁用的视图之上添加视图的解决方案不起作用。其实点击内视图还是可以的,我试过一个简单的例子:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="#ff0000">
        <Button
            android:id="@+id/button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Click Me!"
        />
    </LinearLayout>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#00000000"
    />
</FrameLayout>

在这里仍然可以点击button

编辑#2

我想这样做的原因与我几周前提出的以下问题有关。

我所拥有的是一个ListView充当导航栏的导航栏,它位于View包含我的应用程序内容的下方。这个实现的问题是,当我尝试滚动ListView时,当它上面的图层中有一个可聚焦的视图时,它ListView不会滚动,而是顶部视图获得焦点(当有一个 Webview或一个EditText等)。

所以是的,正如其中一个答案所述,我可以WebView通过覆盖来禁用 a 上的任何点击事件,setOnTouchListener但视图仍然集中,我认为这就是我的导航栏仍然存在相同问题的原因。

4

1 回答 1

6

只需将视图放在视图之上。您可以通过设置 view.visibility =gone/visible 来关闭它。

<FrameLayout>
<WebView/>
<FrameLayout This view will be on top/>
</FrameLayout>

编辑:刚刚偶然发现这个链接:https ://stackoverflow.com/a/3856199/969325 基本上禁用了webview的所有触摸事件。试过了吗?

编辑 2 重新编辑:尝试将列表视图下方的顶部视图的可见性设置为消失。

于 2012-05-07T10:45:10.577 回答