extends ActionBarActivity
切换到扩展AppCompatActivity
,并需要在工具栏上显示项目的帮助。
我使用的是extends AppCompatActivity
android.support.v7.app.AppCompatActivity
;然后在onCreate()
里面有:
Toolbar jobListToolbar = (Toolbar) findViewById(R.id.job_list_toolbar);
setSupportActionBar(jobListToolbar);
然后在xml文件中我有
<android.support.v7.widget.Toolbar
android:id="@+id/job_list_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
然后在菜单文件中我有项目,一切似乎都有效,但不是我想要的方式。
工具栏/操作栏显示在屏幕顶部,但没有显示菜单项。如果我按下手机原始菜单按钮,则首次启动onCreateOptionsMenu(Menu menu)
,并显示菜单。但它显示在这个电话按钮上方。但我希望这些按钮显示在屏幕顶部的工具栏/操作栏上。我在某处读到,如果手机有硬件菜单按钮,它将不会显示工具栏/操作栏中的菜单项,但我已经用extends ActionBarActivity
以某种方式完成了它,但应该有一种方法可以使用extends AppCompatActivity
。需要通过谷歌推荐到更新的推荐方式,但不知道如何在屏幕顶部的工具栏/操作栏上显示项目。
答案 0 :(得分:1)
经过一天的研究,如何切换到AppCompat Toolbar终于找到了解决方案。两个必须做的步骤(第二个是没有人谈论的那个):
我。)有关如何设置工具栏的良好资源可以在此视频Toolbar Tutorial以及此StackOverflow: toolbar button
中找到II。)请确认你在onCreate()的底部放置了这个代码:
toolbar= (Toolbar) findViewById(R.id.job_list_toolbar);
setSupportActionBar(toolbar);
if(getSupportActionBar()!=null) {
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
我的问题是我在onCreate()中有一些代码修改了工具栏按钮。该代码需要在工具栏打开之前运行。如果只有前面两行代码中包含的工具栏会显示,但没有菜单会膨胀而没有按钮。当我在调用getSupportActionBar().setDisplayShowHomeEnabled(true);
时调用onCreateOptionsMenu(Menu menu)
时(如果没有启用,则不会调用它),同时确保getMenuInflater().inflate(R.menu.job_list, menu);
内有onCreateOptionsMenu(Menu menu)
。
如果要求打开getSupportActionBar().setDisplayShowHomeEnabled(true);
菜单的代码不在onCreate()的末尾,您可能会感到头疼,为什么菜单没有显示。因此,在调用菜单打开之前,请确保执行相关的onCreate()代码。
答案 1 :(得分:0)
MyActivity:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbarhome"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:layout_collapseMode="pin"
android:background="@color/colorPrimary"
android:contentInsetLeft="0dp"
android:contentInsetStart="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
android:contentInsetRight="0dp"
android:contentInsetEnd="0dp"
app:contentInsetRight="0dp"
app:contentInsetEnd="0dp" >
//designed the way you like
</android.support.v7.widget.Toolbar>
activity_my.xml:如果需要,可以删除最后一行0 ep。它们是启动工具栏
的0的起点 <activity
android:name=".MyActivity"
android:theme="@style/AppTheme.NoActionBar"/>
清单:
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"> </style>
<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">20sp</item>
<item name="android:textStyle">italic</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
式:
{{1}}