Android:不可见的对象仍然可以点击

标签 android invisible

我有一个 Activity,其中包含可以根据用户交互出现和消失的按钮和图像。

我发现后面的对象已设置为不可见,但仍然会触发点击,某种程度上。它们不会处理与被点击相关的代码,但它们会暂时重新出现,然后在被点击时立即再次消失。

它们似乎也在某种程度上干扰了放置在它们顶部的按钮。当它们后面有一个不可见的物体时,这些按钮有时会变得非常笨拙且难以点击。

我只是简单地使用:

object.setVisibility(View.VISIBLE);

和:

object.setVisibility(View.INVISIBLE);

让我的元素出现和消失。这不是我应该做的吗?

编辑:

人们一直要求我提供与他们给我的完全相同的代码。这是我得到的代码,我目前正在使用。

        btnLifePlus5.setVisibility(View.GONE);
        btnLifePlus5.setFocusableInTouchMode(false);
        txtLifePlus5.setVisibility(View.GONE);
        txtLifePlus5.setFocusableInTouchMode(false);
        btnLifePlus1.setVisibility(View.GONE);
        btnLifePlus1.setFocusableInTouchMode(false);
        txtLifePlus1.setVisibility(View.GONE);
        txtLifePlus1.setFocusableInTouchMode(false);
        btnLifeMinus5.setVisibility(View.GONE);
        btnLifeMinus5.setFocusableInTouchMode(false);
        txtLifeMinus5.setVisibility(View.GONE);
        txtLifeMinus5.setFocusableInTouchMode(false);
        btnLifeMinus1.setVisibility(View.GONE);
        btnLifeMinus1.setFocusableInTouchMode(false);
        txtLifeMinus1.setVisibility(View.GONE);
        txtLifeMinus1.setFocusableInTouchMode(false);

这与将它们设置为不可见没有区别。

最佳答案

使任何 View 不可见不会阻止我们触发它们的监听器。只是你看不到它,其他一切都和它是可见的一样。

如果您根本不想使用它,请将其更改为 View.GONE

View.INVISIBLEView.GONE 的区别:当对象设置为 时,不可见对象继续使用分配给它的空间>View.GONE 会离开空间空间,就好像它不在屏幕上一样。

使用

object.setVisibility(View.GONE);

而不是

object.setVisibility(View.INVISIBLE);

关于Android:不可见的对象仍然可以点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32140625/

相关文章:

java - JPanel 无法添加到 JFrame 构造函数之外的 JLayeredPane

C++ MessageBox (Windows.h) - 它有什么作用,我怎样才能让它不可见(或等效)?

Android Socket 创建失败,Telnet 连接正常

javascript - 如何用约束布局交换两个按钮的位置?

Android Sqlite 多线程使用 DBFlow + Retrofit 保存数据

android - 适用于所有移动设备的相同设计

c# - 使 DataGridViewRow 不可见的更快方法

android - 如何禁用 SearchView 中的搜索对话框

java - Selenium:WAITING元素消失

jsp - Struts 2 从struts.xml INVISIBLY 传递参数给jsp