【问题标题】:Disable Android GridView highlighting completely (disable selection)完全禁用 Android GridView 突出显示(禁用选择)
【发布时间】:2011-03-10 17:58:03
【问题描述】:

我正在尝试在 Android 2.2 中禁用 GridView 中对象的突出显示。

我发现this other answer 说我应该将选择器设置为透明的 ColorDrawable (android:listSelector="@android:color/transparent"),但是当我选择它们时,GridView 中的视图仍然变暗。

我只是使用 GridView 在网格中显示静态对象。这些对象都不会被选中。仅使用基本视图并手动绘制图像会更好吗?

【问题讨论】:

标签: android gridview selector


【解决方案1】:

在为 GridView 定义适配器时,您必须重写以下方法:

@Override
public boolean areAllItemsEnabled()
{
    return false;
}

@Override
public boolean isEnabled(int position)
{
    return false;
}

这将导致网格中的所有项目都不可选择,并且将完全摆脱突出显示。

【讨论】:

  • 如果您需要让孩子保持专注,请尝试 android:descendantFocusability="afterDescendants"
  • 非常感谢,如果您的列表中有自定义对象(视图..)并覆盖其 onclicklistener,您可以选择它们 :=) 完美:)
  • 这完全禁用项目选择
【解决方案2】:

只要Set v.setOnClickListener(null);

【讨论】:

  • 这是在您的 Adapter.getView 方法中
  • 我仍然需要能够获取 GridView 的点击事件,但我确信这在其他情况下也可以。
  • 这将创建一个异常
【解决方案3】:

为了保持项目可点击,您应该使用 attr 下方。在您的 GridView xml 中:

android:listSelector="#00000000"

另请参阅: https://stackoverflow.com/a/2866074/928591

【讨论】:

  • @Radu 问题中明确提到此解决方案不起作用。
  • 更好的使用android:listSelector="@null"
【解决方案4】:

如果您只想禁用选择的视觉方面,您可以执行以下操作:

gridview.getSelector().setAlpha(0);

【讨论】:

    猜你喜欢
    • 2011-02-21
    • 1970-01-01
    • 2010-10-24
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多