【问题标题】:Difference between android: and app: prefix in Android XML?Android XML 中 android: 和 app: 前缀的区别?
【发布时间】:2019-05-17 18:30:49
【问题描述】:

在 Andriod 视图 XML 中具有不同前缀有什么区别,更重要的是有必要性?

例如,

<android.support.v7.widget.Toolbar
    android:id="@+id/actionToolBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:contentInsetEnd="20dp"
    app:contentInsetEnd="20dp"
    android:elevation="3dp"
  />

contentInsetEnd 用于 androidapp

【问题讨论】:

标签: android android-layout


【解决方案1】:

android 通常用于来自 Android SDK 本身的属性。

app 在使用支持库时经常使用。

如果您使用自定义视图(您自己的或形成一个库),您也可能会看到其他命名空间。

这里有一些额外的信息:http://developer.android.com/training/custom-views/create-view.html#customattr

【讨论】:

  • 谢谢。但我不明白一个特殊情况,当我们在cardview中使用小部件时,app命名空间(例如app:layout_constraintStart_toStartOf)和card_view命名空间(例如card_view:layout_constraintStart_toStartOf)中的constraint_layout属性有什么区别?
【解决方案2】:

app命名空间用于自定义属性,通常定义在/values/attrs.xml下面是这样的文件示例

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="SimpleTabIndicator">
        <attr name="numberOfTabs" format="integer"/>
        <attr name="indicatorColor" format="color"/>
    </declare-styleable>
</resources>

示例用法是

<com.someapp.demo.SimpleTabIndicator
    android:id="@+id/tabIndicator"
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="#26292E"
    app:indicatorColor="#FFFDE992"
    app:numberOfTabs="5"/>

您用于 Android 小部件和 UI 控件的 Android 命名空间。

【讨论】:

    【解决方案3】:

    app 只是自定义视图的任何自定义参数的命名空间。

    这可以是任何东西,但如果您看到根元素,则可能有一行 xmlns:app="http://schemas.android.com/apk/res-auto" 分配了命名空间。

    【讨论】:

    • 你拯救了我的一天。谢谢
    猜你喜欢
    • 2018-01-23
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 2015-07-29
    • 2017-05-04
    • 2011-01-27
    • 2013-04-15
    相关资源
    最近更新 更多