【问题标题】:Android- hide actionbar during startup and then show it again?Android-在启动期间隐藏操作栏然后再次显示?
【发布时间】:2012-09-18 02:46:33
【问题描述】:

我的 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();
.
.
.

我必须做些什么才能初始化真正的操作栏,而不会在启动之前短暂显示一个小的默认操作栏?

谢谢

【问题讨论】:

标签: android android-actionbar


【解决方案1】:

启动时隐藏

 getSupportActionBar().hide();

之后你可以用...再次显示它

 getSupportActionBar().show();

应该和Android原生的ActionBar一样。

你应该在 manifest 中使用这一行,不要使用 getActionBar()

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

一旦在主 Activity 中完成,就在下面使用,否则就什么也没有

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

【讨论】:

  • 如何添加您指定的 XML,以便应用以 false 启动,然后切换到 true 主要活动开始后?
  • 我尝试为应用程序本身分配一个没有操作栏的主题,但为活动分配一个主题(使用 android:windowActionBar)。它仍然使用默认操作栏启动,然后才将自己初始化为真正的导航操作栏。
【解决方案2】:

将此作为您的活动清单定义:

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

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

setTheme(R.style.AppTheme); 

【讨论】:

    【解决方案3】:

    如果您正在使用操作栏 sherlock,并且您想从 FragmentActivity 切换它,那么您调用

    getSherlockActivity().getSupportActionBar().hide();
    

    【讨论】:

      猜你喜欢
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      相关资源
      最近更新 更多