【发布时间】: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 作为选择器来减少应用程序资源。
-
我认为,你夸大了 :) 最好的感谢 - 在这里帮助别人。