Android- 如何在启动时隐藏actionbar,然后再次显示它?

10

我的android应用程序使用操作栏进行选项卡导航。它运行良好,但在应用程序第一次启动期间,一个小的默认操作栏会短暂出现,然后被真正的选项卡导航操作栏替换。我的onCreate方法开头如下:

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    setContentView(R.layout.activity_main);

    //Set up the actionbar
    final ActionBar actionBar = getActionBar();
.
.
.

我需要怎么做才能在启动时真正初始化ActionBar,而不会出现一个短暂的默认小窗口?

谢谢。


1
这是您正在寻找的内容吗:如何在活动创建之前隐藏操作栏,然后再次显示它? - Paresh Mayani
3个回答

5

启动时隐藏

 getSupportActionBar().hide();

在你需要再次显示它时,可以使用以下方法:...
 getSupportActionBar().show();

这应该与Android原生的ActionBar相同。

你应该在清单文件中使用这行代码,并且不要使用getActionBar()。

<item name="android:windowActionBar">false</item>

一旦在主 Activity 中完成,使用以下内容或不使用任何内容

<item name="android:windowActionBar">true</item>

我该如何添加你指定的XML,以便应用程序在启动时使用<item name="android:windowActionBar">false</item>但在主活动启动后切换到<item name="android:windowActionBar">true</item>? - LoneDuck
1
我尝试过为应用程序本身分配一个没有操作栏的主题,但是为活动分配一个带有操作栏的主题(使用android:windowActionBar)。 它仍然使用默认的操作栏启动,并且只有在初始化自己作为真正的导航操作栏之后才会显示。 - LoneDuck
看这个链接:https://dev59.com/uWoy5IYBdhLWcg3wguWS?rq=1 - MBMJ

4

将以下代码添加到您的活动清单定义中:

 <activity
            android:name=".MyActivity"
             android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            >

然后在您的oncreate内执行以下操作以显示您想要使用的实际主题:

setTheme(R.style.AppTheme); 

1
如果您正在使用ActionBarSherlock,并且想要从FragmentActivity切换它,则可以调用以下方法:
getSherlockActivity().getSupportActionBar().hide();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接