【问题标题】:How to specify android:listSelector="@null" programmatically?如何以编程方式指定 android:listSelector="@null"?
【发布时间】:2012-01-30 22:24:54
【问题描述】:

出于某种原因,我在模拟器中的 gridview 的列边框周围没有额外的空间,但我发现我的真实设备 (Galaxy S) 中的额外像素。所以我想试试:

android:listSelector="@null" 

以编程方式。

我知道它的相关方法是setSelector。但是我应该为"@null" 提供什么号码或ID?我试过0,但它导致应用程序崩溃。

更新:我通过制作自己的选择器解决了这个问题。

【问题讨论】:

  • 如果你想取消设置listSelectordrawable,使用setSelector(null)而不是setSelector(0)。但我不确定它是否会帮助您处理边距/填充。
  • 糟糕...真的,它不起作用,抱歉。您是否尝试为每个 GridView 子元素设置不同的背景颜色以找出多余的像素是哪些元素的一部分?
  • 这很奇怪。我现在做了一些实验,使用默认的列表项选择器,我在行之间有一个像素的空间,但不是列。可能这是依赖于版本的行为。无论如何,当将listSelector 设置为@null@android:color/transparent 时,边框已经消失。那么为什么不对GridView 使用适当的布局呢?即使您想以编程方式创建它,您也始终可以使用GridView.inflate()。所以你不需要使用可能有错误的setSelector() 方法。
  • 很高兴听到。您仍然可以使用 android.R.color.transparent 作为选择器来减少应用程序资源。
  • 我认为,你夸大了 :) 最好的感谢 - 在这里帮助别人。

标签: android gridview


【解决方案1】:

使用这个:

listView.setSelector(new StateListDrawable());

将禁用选择器:)

【讨论】:

    【解决方案2】:

    使用

    listView.setSelector(android.R.color.transparent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2012-01-21
      • 1970-01-01
      • 2011-08-21
      • 2021-06-18
      • 1970-01-01
      相关资源
      最近更新 更多