【问题标题】:what ?android:attr/listPreferredItemHeight is doing and how?什么 ?android:attr/listPreferredItemHeight 在做什么以及如何做?
【发布时间】:2011-12-16 22:00:35
【问题描述】:
  • 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"。究竟是什么意思?

【问题讨论】:

    标签: java android


    【解决方案1】:

    标记“?”表示您指的是样式属性。所以?android:attr/listPreferredItemHeight只是表示“使用命名空间android中名为listPreferredItemHeight的属性定义的值。”

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

    【讨论】:

    • 如何找到 listPreferredItemHeigh 的值?
    • 这将返回值: TypedValue typedValue = new TypedValue(); getActivity().getTheme().resolveAttribute(android.R.attr.listPreferredItemHeight, typedValue, true); DisplayMetrics 指标 = 新的 android.util.DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); return (int) typedValue.getDimension(metrics);
    • 对于其他到达这里并想知道文档在哪里的人,我发现这很有帮助:developer.android.com/guide/topics/resources/…
    【解决方案2】:

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

    ?[<package_name>:][<resource_type>/]<resource_name>取自Referencing Styles

    ? 用于引用样式属性,而看起来更熟悉的@ 用于普通资源。

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

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

    ?android:listPreferredItemHeight

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-14
      • 2015-05-22
      • 1970-01-01
      • 2017-04-20
      • 2023-03-06
      • 1970-01-01
      • 2021-11-12
      • 2010-11-11
      相关资源
      最近更新 更多