Android XML中的android:和app:前缀之间的区别?

时间:2015-04-19 16:24:26

标签: android android-layout

有什么区别,更重要的是在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"
  />

contentInsetEndandroid都有app

4 个答案:

答案 0 :(得分:28)

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

如果您使用支持库,则经常使用

app

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

以下是一些额外信息:http://developer.android.com/training/custom-views/create-view.html#customattr

答案 1 :(得分:5)

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

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

答案 2 :(得分:5)

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 :(得分:0)

如果您使用应用程序前缀,例如app:text =“ disconnected”,则当您在真实设备上运行时,该文本将不会显示。 如果要在设计时显示某些内容,而不是在实际设备上显示,也可以使用此前缀。