Roi*_*oen 34 android android-appcompat android-layout
在使用新的API 21工具栏和appCompat_v7两天后,我想我发现了一个错误.如果你的菜单上有2个动作,如下所示:
<item
android:id="@+id/action_test"
android:showAsAction="always"
android:icon="@drawable/ic_launcher"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
Run Code Online (Sandbox Code Playgroud)
和appCompat工具栏定义如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.toolbar.MainActivity" >
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="52dp"
android:id="@+id/toolbar">
</android.support.v7.widget.Toolbar>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
膨胀后(或设置setSupportActionBar方法)
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
toolbar.setTitle("esurance");
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
您将获得没有操作图标的工具栏菜单,它将显示在溢出菜单上.
但是,如果您使用API 21中的工具栏类,它将显示您在菜单布局中定义的操作...
<Toolbar
android:layout_width="match_parent"
android:layout_height="52dp"
android:id="@+id/toolbar">
</Toolbar>
Run Code Online (Sandbox Code Playgroud)
也许我在这里遗漏了一些东西,但到目前为止,我一直无法使用appCompat在溢出菜单之外显示操作.任何有关这方面的帮助将非常感激.

ian*_*ake 77
根据Action Bar培训,您必须使用app:showAsAction属性而不是android:showAsAction属性:
请注意,上面的showAsAction属性使用
<menu>标记中定义的自定义命名空间.在使用支持库定义的任何XML属性时,这是必需的,因为旧设备上的Android框架中不存在这些属性.因此,您必须使用自己的命名空间作为支持库定义的所有属性的前缀.
所以你的菜单文件应如下所示:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_test"
app:showAsAction="always"
android:icon="@drawable/ic_launcher"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
app:showAsAction="never"
android:title="@string/action_settings"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31313 次 |
| 最近记录: |