前言
之前录比赛视频的时候,发现应用点开后会白屏一段时间才会出现导航页,总觉得看着特别不舒服。虽然这是一个小问题,而且也特别容易解决。可是我觉得这也不应该被忽略~
一般写法
ublic class WelcomeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_welcome);
Handler handler = new Handler();
//当计时结束,跳转至主界面
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);
startActivity(intent);
WelcomeActivity.this.finish();
}
}, 3000);
}
}
然后在AndroidManifest.xml里声明启动页。
可是酱紫,activity在执行setContentView()方法后才会显示布局,所以在setContentView()方法前面不要放耗时的操作或者是 requestWindowFeature(Window.FEATURE_NO_TITLE);。
解决方法
Activity
public class FirstActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(FirstActivity.this, MainActivity.class));
finish();
}
}, 1000);
}
}
写好Activity的跳转后,到values中的styles.xml中添加一个主题
<style name="ThemeSplash" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:background">@drawable/firstbg</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
最后到AndroidManifest.xml中修改这个Activity的主题并设置成启动页
<activity
android:name=".activity.FirstActivity"
android:theme="@style/ThemeSplash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
好啦~最后~么么哒(づ ̄ 3 ̄)づ