我有一个简单的应用程序,可以显示文本。
应用程序开始时,有一个主屏幕,上面有几个选项(例如,一个信息按钮,可导航到关于该应用程序的信息,一个浏览按钮,允许用户查看所有可以显示的单个文本片段)。主按钮导航到另一个屏幕,文本在其中显示。通过向左或向右滑动,他可以看到不同的文本段落。这是应用程序的主要目的。
目前,我已经实现了ActionBar。我的MainActivity.Java扩展了AppCompatActivity。应用程序中的所有内容都在此活动中。
现在,我想使ActionBar仅在“显示”模式下出现,而不在启动屏幕或“信息”/“浏览”模式下出现。
是否可能在应用程序的某个部分中具有ActionBar,在应用程序的另一部分中没有ActionBar?(并且仍然保持在同一个活动中?)
我一直在尝试实现这一点,但未成功。如果可能的话,我接下来应该尝试什么?
到目前为止,我尝试了以下方法:
1)创建此主题
<style name="Theme.AppCompat.NoActionBar" parent="Theme.AppCompat.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
将其应用于MainActivity...
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.NoActionBar" >
在这样做之后,ActionBar仍然存在。(来自于这篇S.O.帖子(android:windowNoTitle will not hide actionbar with appcompat-v7 21.0.0))2)另一种尝试是将以下内容添加到onCreate中。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
setContentView(R.layout.activity_main);
这是从研究这个S.O.的帖子得出的:如何在活动创建之前隐藏操作栏,然后再次显示它?
有什么建议吗?
hide()
会抛出一个空异常。 - Alston