什么是android:attr/listPreferredItemHeight,它的作用是什么?

26
  • public static final int listPreferredItemHeight

这部分表达的意思是:listPreferredItemHeight是优先使用的列表项高度。

但我真的不理解这些东西。有人可以指引我到正确的方向去阅读吗?

这也可能是一个资源的引用(形式为“@[package:]type:name”)或主题属性(形式为“?[package:][type:]name”),其中包含此类型的值。

我找到这段代码的示例在这里 https://android-developers.googleblog.com/2009/02/android-layout-tricks-1.html

编辑:在链接中的示例中,代码是 android:layout_height="?android:attr/listPreferredItemHeight"。这是什么意思?

2个回答

62

标记“?”表示您正在引用样式属性。因此,?android:attr/listPreferredItemHeight 简单地意味着“使用命名空间为 android 中名为 listPreferredItemHeight 的属性定义的值。”

这个属性及其值是 Android 框架的一部分,因此属于“android”命名空间。


2
我该如何找到listPreferredItemHeight的值? - Nam Vu
4
这段代码将返回一个值:TypedValue typedValue = new TypedValue(); getActivity().getTheme().resolveAttribute(android.R.attr.listPreferredItemHeight, typedValue, true); DisplayMetrics metrics = new android.util.DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); return (int) typedValue.getDimension(metrics);注:该段代码使用了Android开发中的相关类和方法,通过获取主题属性和展示度量单位,返回一个整数值。 - d2vid
4
如果其他人来到这里并且想知道相关文档在哪里,我发现以下链接非常有帮助: http://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes - plainjimbo

8

android:layout_height="?android:attr/listPreferredItemHeight"

?[<package_name>:][<resource_type>/]<resource_name>摘自引用样式

在样式属性中使用?,而在普通资源中则使用更加熟悉的@

样式属性资源引用当前应用主题中的值。因此,在不同的主题之间可能会存在差异。

将当前应用主题的android包中找到的listPrefferedItemHeight的值返回给android:layout_height。代码行中的attr资源类型是可选的,可以省略。因此,下面的写法也是正确的:

?android:listPreferredItemHeight


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接