不可聚焦元素上的 Android GridView 选择



我有网格视图和基本适配器。适配器中总是有 12 个元素,但有时需要有不可聚焦或不可见的元素。

如果我有一个可见元素,然后按右键,则选择不可见的项目。我需要以某种方式禁用网格中该元素的焦点。

我尝试使用

 @Override
    public boolean areAllItemsEnabled() {
        Log.d("ARE ALL ITEMS", "ENTERED");
        return false;
    }
    @Override
    public boolean isEnabled(int position) {
        if (position >= numberOFRealElement) {
            Log.d("FAVORITE DISABLED", "ENTERED");
            return false;
        }
        Log.d("FAVORITE ENABLED", "ENTERED");
        return true;
    }

但没有成功。如何调用这些方法?似乎它们不是自动调用的。

编辑:隐藏元素代码:

        item.setVisibility(View.GONE);
        item.setFocusable(false);
        item.setEnabled(false);
        item.setClickable(false);

        return item;

尝试使用view.setVisibility(View.GONE);

当您将视图设为setVisibility(View.INVISIBLE)时,它只是不可见的,但它仍然在 UI 中占有一席之地,但是当您使用 GONE 时,视图变得不可见,并且它也不使用 UI 中的任何空间。

所以在你的情况下,当它变得 GONE ,它将无法获得任何焦点或无法被选中。

我没有成功简单地解决这个问题,所以我必须找到这个Android错误的解决方法。我必须在 GridView 上附加 OnKeyListener 并检测所选位置是什么。如果用户向右或向下单击并且有不可见的元素,我会在KeyListener中返回true,并且Android不会响应该键。:)

最新更新