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

Art*_*ans 33 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"
  />
Run Code Online (Sandbox Code Playgroud)

contentInsetEnd两个androidapp.

Gaë*_*tan 33

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

app 如果您使用支持库,通​​常会使用它.

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

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


Boj*_*man 9

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>
Run Code Online (Sandbox Code Playgroud)

样本用法是

<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"/>
Run Code Online (Sandbox Code Playgroud)

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


inm*_*yth 6

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

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