Android为什么找不到NameSpace应用程序

时间:2016-05-12 07:21:47

标签: android xml

我在下面看到代码,可以通过此链接在工具栏上添加操作

https://developer.android.com/training/appbar/actions.html

app:showAsActions错误,为什么找不到应用

<!-- "Mark Favorite", should appear as action button if possible -->
<item
    android:id="@+id/action_favorite"
    android:icon="@drawable/ic_favorite_black_48dp"
    android:title="@string/action_favorite"
    app:showAsAction="ifRoom"/>

<!-- Settings, should always be in the overflow -->
<item android:id="@+id/action_settings"
      android:title="@string/action_settings"
      app:showAsAction="never"/>

在我搜索之后,我将xmlns:app="http://schemas.android.com/apk/res-auto添加到菜单节点,但仍然为标记项找到了意外的名称空间前缀'app',我知道这是一个菜鸟问题,谢谢你的帮助!

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- "Mark Favorite", should appear as action button if possible -->
    <item
        android:id="@+id/action_favorite"
        android:icon="@drawable/ic_favorite_black_48dp"
        android:title="@string/action_favorite"
        app:showAsAction="ifRoom"/>

    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        app:showAsAction="never"/>
</menu>

enter image description here

1 个答案:

答案 0 :(得分:2)

解决方案:

按照清单

中的定义选择正确的样式

<强>清单

raise SystemExit

<强>风格

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> </style>

选择正确的标题
showAsAction

结论:

如果您使用<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:**yourapp**="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" **yourapp**:showAsAction="ifRoom" /> ... </menu>

然后你必须使用xmlns:yourapp="http://schemas.android.com/apk/res-auto"。在yourapp

如果您使用showAsAction,那么您已经习惯了xmlns:android