我需要在我的蜂窝应用程序中实现启动画面。
我在activity的onCreate中使用这段代码来显示splash:
setContentView(R.layout.splash);
getActionBar().hide();
这段代码将显示主UI:
setContentView(R.layout.main);
getActionBar().show();
但在onCreate被调用和飞溅出现之前,有一小段时间,当动作栏显示。
我怎样才能使动作栏不可见?
我尝试将主题应用于没有动作条的活动:
<item name="android:windowActionBar">false</item>
但在这种情况下,getActionBar()总是返回null,我发现没有办法再次显示它。
@牧师的解决方案工作。但这似乎也是谷歌的一些原生应用程序的问题:谷歌、play store、talk。还有其他大型应用程序,如skype。
编辑:下面的解决方案给了我的问题actionbarsherlock api < 4.0,原因是setTheme不工作前冰淇淋三明治
在应用程序或活动标签的清单中添加以下内容:
android:theme="@style/Theme.NoActionBar"
然后在你的主要活动中
// Set theme
setTheme(R.style.YOUR_THEME);
getSupportActionBar().setTitle(R.string.title);
// Start regular onCreate()
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最好的方法是将第一个活动作为空白活动和您想要放置的内容,然后在一段时间后触发另一个活动。
按照这种方法,你可以将第一个活动作为你的启动画面,而不需要操作栏或任何东西。
这是我的第一个活动
package com.superoriginal.rootashadnasim.syllabus;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class first_screen extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first_screen);
final Handler h=new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent=new Intent(getApplicationContext(),DrawerChooseBranchMainActivity.class);
startActivity(intent);
}
},2000);
}
}
之后,你可以把任何一个活动作为第一个活动
如果你想在任何屏幕上都没有动作栏,那么只需在你的样式中添加这个
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>