2015-05-31 37 views
0

我是Android新手,我一直在给Android Studio一个旋转。我遵循Google's tutorial,我仍然无法在仿真器或实际设备上启动并运行ActionBar。我已经在清单文件中指定了最小版本,并且我也相应地编辑了菜单和活动xml文件。如何获取ActionBar进行渲染?

混淆,在activity_foo.xml所示的UI和menu_foo.xml是不同的:

activity_foo.xml: enter image description here

menu_foo.xml: enter image description here

甚至更​​令人混淆,所述最终的应用程序时,内置显示搜索和设置在汉堡菜单,虽然我不记得在GUI预览中看到它: enter image description here

我该如何解决这个问题?

回答

1

令人困惑的是,在activity_foo.xml显示的用户界面和menu_foo.xml不同

他们应该是不同的。一个是向你展示一个布局文件。另一个是向你展示一个菜单资源。他们的预览不应该一定匹配。毕竟,比面包箱大的Android应用程序将拥有许多布局资源,其中很少会定义活动的内容。

对于定义活动内容的布局,IIRC,你可以在你的布局文件的根元素相同tools:context=".FooActivity"和预览可能考虑到这一点。

更容易混淆,最终的应用程序时,内置显示汉堡包菜单中的搜索和设置都虽然我不记得看到它在图形用户界面预览:

在预览,搜索项目由工具栏式按钮表示(图标是放大镜)。

在你的菜单资源中,你有一个<item>android:showAsAction和一个<item>app:showAsAction。您正在使用appcompat-v7操作栏backport,或者您没有。这将通过之类的东西来决定:

  • 什么Java类的活动,你正在使用你的清单中的活动是什么主题(如果它是基于从(ActionBarActivityAppCompatActivityappcompat-v7

  • 继承在Theme.AppCompat.*,您使用appcompat-v7

如果您正在使用appcompat-v7,您需要更改android:showAsActionapp:showAsAction。鉴于您在仿真器中运行该项目的结果,我的猜测是您正在使用appcompat-v7。如果您对菜单资源进行更改并再次运行该项目,则可能会看到搜索项显示为放大镜图标,如您在预览中看到的那样。我说“可能”是因为有可能没有空间显示该工具栏样式的图标,具体取决于运行应用程序的设备的屏幕大小和方向—带有ifRoom的操作栏项目将显示为工具栏样式的按钮,如果存在如果没有房间,或将进入溢出菜单。

+0

谢谢,它只需要一个app:showAsAction =“always” – shortstheory