我是Android开发的新手,我一直在为Android Studio提供支持。我跟着Google's tutorial,我仍然无法在模拟器或真实设备上启动并运行ActionBar。我在清单文件中指定了最小版本,并且我也相应地编辑了菜单和活动xml文件。
令人困惑的是,activity_foo.xml和menu_foo.xml中显示的UI不同:
activity_foo.xml:
menu_foo.xml:
更令人困惑的是,构建的最终应用程序在汉堡包菜单中显示了搜索和设置,但我不记得在GUI预览中看到它:
我该如何解决这个问题?
答案 0 :(得分:1)
令人困惑的是,activity_foo.xml和menu_foo.xml中显示的用户界面不同
他们应该是不同的。一个是向您显示布局文件。另一个是向您显示菜单资源。他们的预览不一定匹配。毕竟,比面包箱大的Android应用程序将拥有许多布局资源,其中很少会定义活动的内容。
对于做定义活动内容的那些布局,IIRC,您可以在布局文件的根元素中使用相同的tools:context=".FooActivity"
,并且预览可以将其转换为帐户。
更令人困惑的是,构建的最终应用程序在汉堡菜单中显示了搜索和设置,但我不记得在GUI预览中看到它:
在预览中,搜索项目由工具栏样式按钮表示(图标是放大镜)。
在您的菜单资源中,您有一个<item>
android:showAsAction
和一个<item>
app:showAsAction
。要么使用appcompat-v7
操作栏后退,要么不是。这将取决于:
您的活动从哪个Java类继承(ActionBarActivity
或AppCompatActivity
appcompat-v7
)
您在清单中为活动使用的主题(如果它基于Theme.AppCompat.*
,您正在使用appcompat-v7
)
如果您使用appcompat-v7
,则需要将android:showAsAction
更改为app:showAsAction
。鉴于您在模拟器中运行项目的结果,我的猜测是您正在使用appcompat-v7
。如果您更改菜单资源并再次运行项目,您可能会看到搜索项显示为放大镜图标,如预览中所示。我说“可能”因为可能有或没有空间显示工具栏样式图标,具体取决于屏幕大小和运行应用程序的设备的方向 - 带有ifRoom
的操作栏项目将显示为工具栏样式按钮,如果有空间,或者如果没有则会落入溢出菜单。