令人困惑的是,在activity_foo.xml显示的用户界面和menu_foo.xml不同
他们应该是不同的。一个是向你展示一个布局文件。另一个是向你展示一个菜单资源。他们的预览不应该一定匹配。毕竟,比面包箱大的Android应用程序将拥有许多布局资源,其中很少会定义活动的内容。
对于做定义活动内容的布局,IIRC,你可以在你的布局文件的根元素相同tools:context=".FooActivity"
和预览可能考虑到这一点。
更容易混淆,最终的应用程序时,内置显示汉堡包菜单中的搜索和设置都虽然我不记得看到它在图形用户界面预览:
在预览,搜索项目由工具栏式按钮表示(图标是放大镜)。
在你的菜单资源中,你有一个<item>
有android:showAsAction
和一个<item>
有app:showAsAction
。您正在使用appcompat-v7
操作栏backport,或者您没有。这将通过之类的东西来决定:
如果您正在使用appcompat-v7
,您需要更改android:showAsAction
至app:showAsAction
。鉴于您在仿真器中运行该项目的结果,我的猜测是您正在使用appcompat-v7
。如果您对菜单资源进行更改并再次运行该项目,则可能会看到搜索项显示为放大镜图标,如您在预览中看到的那样。我说“可能”是因为有可能没有空间显示该工具栏样式的图标,具体取决于运行应用程序的设备的屏幕大小和方向—带有ifRoom
的操作栏项目将显示为工具栏样式的按钮,如果存在如果没有房间,或将进入溢出菜单。
谢谢,它只需要一个app:showAsAction =“always” – shortstheory