Pengaturan android:windowActionBar="false"
benar-benar menonaktifkan ActionBar tetapi kemudian, seperti yang Anda katakan, getActionBar();
mengembalikan nol. Ini diselesaikan dengan:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
setContentView(R.layout.splash); // be sure you call this AFTER requestFeature
Ini menciptakan ActionBar dan segera menyembunyikannya sebelum sempat ditampilkan.
Tapi sekarang ada masalah lain. Setelah memasukkan windowActionBar="false"
tema, Kegiatan menggambar Judul Jendela yang normal alih-alih ActionBar.
Jika kami mencoba menghindari ini dengan menggunakan beberapa *.NoTitleBar
tema saham atau kami mencoba untuk memasukkan <item name="android:windowNoTitle">true</item>
tema kami sendiri, itu tidak akan berhasil.
Alasannya adalah bahwa ActionBar tergantung pada Judul Jendela untuk menampilkan dirinya - yaitu ActionBar adalah Judul Jendela yang diubah.
Jadi trik yang dapat membantu kami adalah menambahkan satu hal lagi ke tema Aktivitas kami xml:
<item name="android:windowActionBar">false</item>
<item name="android:windowTitleSize">0dp</item>
Ini akan membuat Judul Jendela dengan tinggi nol, sehingga praktis tidak terlihat.
Dalam kasus Anda, setelah Anda selesai menampilkan layar splash, Anda cukup menelepon
setContentView(R.layout.main);
getActionBar().show();
dan kamu selesai. Aktivitas akan dimulai tanpa ActionBar yang berkedip, atau Judul Jendela yang ditampilkan.
ADDON:
Jika Anda menampilkan dan menyembunyikan ActionBar beberapa kali mungkin Anda telah memperhatikan bahwa pertama menunjukkan ini tidak animasi. Sejak saat itu menunjukkan dan menyembunyikan dianimasikan. Jika Anda juga ingin membuat animasi pada pertunjukan pertama, Anda dapat menggunakan ini:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
// delaying the hiding of the ActionBar
Handler h = new Handler();
h.post(new Runnable() {
@Override
public void run() {
getActionBar().hide();
}
});
Hal yang sama dapat dicapai dengan:
protected void onPostResume() {
super.onPostResume();
getActionBar().hide();
tetapi mungkin perlu beberapa logika tambahan untuk memeriksa apakah ini adalah tampilan pertama dari Kegiatan.
Idenya adalah untuk menunda sedikit persembunyian ActionBar. Di satu sisi kita membiarkan ActionBar ditampilkan, tetapi kemudian sembunyikan segera. Jadi kita melampaui pertunjukkan non-animasi pertama dan pertunjukkan berikutnya akan dianggap kedua, jadi itu akan dianimasikan.
Seperti yang mungkin sudah Anda duga, ada kemungkinan ActionBar bisa dilihat sebelum disembunyikan oleh operasi yang tertunda. Ini sebenarnya masalahnya. Sebagian besar waktu tidak ada yang terlihat tetapi, sesekali, Anda dapat melihat flicker ActionBar untuk sepersekian detik.
Bagaimanapun ini bukan solusi yang bagus, jadi saya menyambut setiap saran.
Selain untuk pengguna tindakan dukungan v7, kodenya adalah:
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getSupportActionBar().hide();
Theme.AppCompat.Light
... gunakan ini Cara Menjawab [1] [1]: stackoverflow.com/a/25365193/1364896