在 xml (android:, app:, @.., ...) 上使用 android 前缀

Posted

技术标签:

【中文标题】在 xml (android:, app:, @.., ...) 上使用 android 前缀【英文标题】:use android prefix on xml (android:, app:, @.., ...) 【发布时间】:2018-01-23 06:23:04 【问题描述】:

在 xml 文件中的 androidStudio 上,我不明白带有 android 前缀的项目和没有它的项目之间的区别 我的部分源代码例如:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColorPrimary">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item>
    <item name="actionMenuTextColor">@color/white</item>
</style>

<style name="AppTheme.toolbar" parent="Widget.AppCompat.Toolbar">
    <item name="android:background">@color/grey</item>
</style>

在这个 xml 文件中,为什么某些属性需要前缀 (android:) 而其他则不需要。 例如:

<item name="android:textColorPrimary">@color/white</item>

这部分代码可以正常工作,但是当使用下面的代码时,它就不起作用了: &lt;item name="textColorPrimary"&gt;@color/white&lt;/item&gt; 所以任何人都可以帮助我了解前缀之间的区别,以及我何时使用它。谢谢

【问题讨论】:

也在***.com/questions/8845565/…讨论过 【参考方案1】:

这是因为其中一些属性来自不同的 XML 名称空间。 在布局文件中,您可能会看到类似的内容:

<Linear Layout
xmlns:android="http://schemas.android.com/apk/res/android">

您需要一种方法来告诉编译器您将从该位置引用属性,并且您可以使用

"android:" 

【讨论】:

以上是关于在 xml (android:, app:, @.., ...) 上使用 android 前缀的主要内容,如果未能解决你的问题,请参考以下文章

android开发怎么更改一个完成的app包名

Android 简易XML解析

Android 应用安装失败:包 com.my.app 在 AndroidManifest.xml 入口处没有证书

Android 布局 XML 中 app:srcCompat 和 android:src 的区别

安卓app开发-05-Android xml布局详细介绍

xml MVC Android App