Bagaimana cara membuat layar penuh aktivitas? Maksud saya tanpa bilah notifikasi. Ada ide?
606
Bagaimana cara membuat layar penuh aktivitas? Maksud saya tanpa bilah notifikasi. Ada ide?
Anda dapat melakukannya secara terprogram:
public class ActivityName extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove title
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
Atau Anda dapat melakukannya melalui AndroidManifest.xml
file Anda :
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
Edit:
Jika Anda menggunakan AppCompatActivity maka Anda perlu menambahkan tema baru
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
dan kemudian menggunakannya.
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>
Terima kasih kepada https://stackoverflow.com/a/25365193/1646479
@android:style/Theme.Holo.Light.NoActionBar.Fullscreen
AppCompatActivity
, Anda harus meletakkanrequestWindowFeature
sebelumnyasuper.onCreate
. Jika tidak, Anda akan mendapatkan:android.util.AndroidRuntimeException: requestFeature() must be called before adding content
Ada teknik yang disebut Mode Layar Penuh Immersive yang tersedia di KitKat .
Contoh
sumber
Jika Anda tidak ingin menggunakan tema
@android:style/Theme.NoTitleBar.Fullscreen
karena Anda sudah menggunakan tema sendiri, Anda dapat menggunakannyaandroid:windowFullscreen
.Di AndroidManifest.xml:
Di styles.xml:
sumber
Dalam file AndroidManifest.xml :
Atau dalam kode Java :
sumber
Jika Anda menggunakan AppCompat dan ActionBarActivity, gunakan ini
getSupportActionBar().hide();
sumber
Hati-hati dengan
Jika Anda menggunakan metode apa pun untuk mengatur bilah tindakan sebagai berikut:
Ini akan menyebabkan pengecualian null pointer.
sumber
Coba ini dengan appcompat dari
style.xml
. Ini memberikan dukungan untuk semua platform.sumber
Menggunakan Android Studio (versi saat ini 2.2.2 saat ini) sangat mudah untuk menambahkan aktivitas layar penuh.
Lihat langkah-langkahnya:
Selesai!
Sekarang Anda memiliki aktivitas layar penuh yang dibuat dengan mudah (lihat kelas java dan tata letak aktivitas untuk mengetahui cara kerjanya)!
sumber
Bagi mereka yang menggunakan AppCompact ... style.xml
Kemudian letakkan nama itu di manifes Anda ...
sumber
Pertama, Anda harus mengatur tema aplikasi Anda dengan "NoActionBar" seperti di bawah ini
Kemudian tambahkan baris ini dalam aktivitas layar penuh Anda.
Ini akan menyembunyikan bilah tindakan / bilah alat dan juga bilah status di aktivitas layar penuh Anda
sumber
AndroidManifest.xml
I. Aplikasi utama Anda temanya adalah Theme.AppCompat.Light.DarkActionBar
Untuk menyembunyikan ActionBar / StatusBar
style.xml
Untuk menyembunyikan bilah navigasi sistem
II Tema aplikasi utama Anda adalah Theme.AppCompat.Light.NoActionBar
Untuk menyembunyikan ActionBar / StatusBar
style.xml
Untuk menyembunyikan bilah navigasi sistem
Mirip seperti
Theme.AppCompat.Light.DarkActionBar
.Demo
sumber
terima kasih atas jawaban @ Kristen saya mendapatkan kesalahan
Saya memecahkan ini menggunakan
sumber
requestWindowFeature(Window.FEATURE_NO_TITLE);
sebelumnyasuper.onCreate(savedInstanceState);
?tampilkan Immersive Lengkap:
keluar dari mode imersif penuh:
sumber
Saya ingin menggunakan tema saya sendiri daripada menggunakan @android: style / Theme.NoTitleBar.Fullscreen. Tapi itu tidak berfungsi seperti yang disebutkan beberapa pos di sini, jadi saya melakukan beberapa penyesuaian untuk mengetahuinya.
Di AndroidManifest.xml:
Di styles.xml:
Catatan: dalam kasus saya, saya harus menggunakan
name="windowActionBar"
daripadaname="android:windowActionBar"
sebelum berfungsi dengan benar. Jadi saya hanya menggunakan keduanya untuk memastikan jika saya perlu port ke versi Android baru nanti.sumber
Berikut ini contoh kode. Anda dapat menghidupkan / mematikan bendera untuk menyembunyikan / menampilkan bagian-bagian tertentu.
Kemudian, Anda mengatur ulang ke status default :
Anda dapat memanggil fungsi-fungsi di atas dari
onCreate
:sumber
KOTLIN
Mengikuti google doc, ada cara mudah:
Google docs
sumber
TIP: Menggunakan getWindow (). SetLayout () dapat mengacaukan tampilan layar penuh Anda! Perhatikan dokumentasi untuk metode ini mengatakan:
http://developer.android.com/reference/android/view/Window.html#setLayout%28int,%20int%29
Untuk keperluan saya, saya menemukan bahwa saya harus menggunakan setLayout dengan parameter absolut untuk mengubah ukuran jendela layar penuh saya dengan benar. Sebagian besar waktu, ini bekerja dengan baik. Itu disebut oleh acara onConfigurationChanged (). Namun, ada masalah. Jika pengguna keluar dari aplikasi, mengubah orientasi, dan masuk kembali, itu akan menyebabkan kode saya keluar termasuk setLayout (). Selama jendela waktu entri ulang ini, bilah status saya (yang disembunyikan oleh manifes) akan dibuat muncul kembali, tetapi pada waktu lain setLayout () tidak akan menyebabkan ini! Solusinya adalah menambahkan panggilan setLayout () tambahan setelah yang dengan nilai keras seperti:
Jendela kemudian diukur ulang dengan benar, dan bilah status tidak muncul kembali terlepas dari peristiwa yang memicu ini.
sumber
sumber
Di dalam styles.xml ...
Ini berhasil untuk saya. Semoga ini bisa membantu Anda.
sumber
Dengan kotlin inilah yang saya lakukan:
Mode Immersive
Mode immersive ditujukan untuk aplikasi di mana pengguna akan banyak berinteraksi dengan layar. Contohnya adalah permainan, melihat gambar di galeri, atau membaca konten yang dihafalkan, seperti buku atau slide dalam presentasi. Untuk ini, cukup tambahkan baris ini:
Lekat immersive
Dalam mode imersif reguler, setiap kali pengguna menggesek dari tepi, sistem menangani pengungkapan bilah sistem — aplikasi Anda bahkan tidak akan menyadari bahwa gerakan itu terjadi. Jadi, jika pengguna sebenarnya perlu menggesek dari tepi layar sebagai bagian dari pengalaman aplikasi utama — seperti ketika bermain game yang membutuhkan banyak gesekan atau menggunakan aplikasi menggambar — Anda sebaiknya mengaktifkan mode imersif "lengket" .
Untuk informasi lebih lanjut: Aktifkan mode layar penuh
Jika Anda menggunakan keyboard, kadang-kadang StatusBar muncul ketika keyboard muncul. Dalam hal ini saya biasanya menambahkan ini ke style xml saya
styles.xml
Dan juga baris ini ke manifes saya
sumber
Cukup tempel kode ini ke dalam
onCreate()
metodesumber
Ini berhasil untuk saya.
sumber
sumber
Setelah banyak waktu tanpa hasil, saya datang dengan solusi saya sendiri yang sama dengan pengembang lain. Jadi, jika seseorang membutuhkannya, masalah saya adalah bilah navigasi sistem tidak bersembunyi setelah menelepon. Juga dalam kasus saya, saya membutuhkan lansekap, jadi kalau-kalau komentar garis itu dan itu semua. Pertama-tama buat gaya
Ini file manifes saya
Ini adalah aktivitas spalsh saya
}
Dan ini adalah aktivitas layar penuh utama saya. onSystemUiVisibilityChange metode ini berhenti penting jika tidak bar navigasi utama android setelah panggilan akan tetap dan tidak hilang lagi. Masalah yang sangat menjengkelkan, tetapi fungsi ini memecahkan masalah itu.
MainActivity kelas publik memperluas AppCompatActivity {
}
Ini adalah tata letak layar splash saya:
Saya harap ini akan membantu Anda
sumber
https://developer.android.com/training/system-ui/immersive.html
Aktivitas :
AndroidManifests:
sumber
Buat aktivitas kosong dan tambahkan dua baris
onCreate
.sumber
Gunakan metode ini setelah setContentView di onCreate () dan meneruskan objek Window dengan getWindow () .
Kode ini juga berfungsi untuk takik layar. Untuk memeriksa layar penuh takik Anda memerlukan Android P tetapi jika Anda memiliki ponsel layar takik kemudian pergi ke pengaturan -> Pengaturan tampilan -> rasio tampilan aplikasi ---> pilih aplikasi Anda ---> akan ada dua opsi yang aman tampilan dan layar penuh, silakan pilih layar penuh dan jalankan aplikasi, Anda dapat melihat layar penuh dalam takik juga tanpa Pie android
sumber
Untuk menjadikan aktivitas Anda layar penuh lakukan ini:
Ini akan menyembunyikan bilah alat dan status.
Tetapi dalam beberapa kasus, Anda mungkin ingin menampilkan bilah status dengan latar belakang transparan, dalam hal ini, lakukan ini:
Beberapa alternatif lain untuk menyembunyikan bilah alat alih-alih
getSupportActionBar().hide()
:<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
Untuk pecinta kotlin , mengapa tidak menggunakan fungsi ekstensi:
Untuk kasus pertama:
Dan sebut ini sebelumnya
setContentView
:Untuk yang kedua:
Dan sebut itu sebelumnya
setContentView
:sumber
Di Android 10, tidak ada yang berhasil untuk saya.
Tapi saya yang bekerja dengan sangat baik (baris pertama di lapangan):
Nikmati :)
sumber
Untuk menampilkan konten melalui takik atau area guntingan. Ini dapat membantu dari dokumen:
Hal utama bagi saya adalah baris ini dalam gaya aktivitas:
Bagi saya, saya ingin menampilkan gambar dalam mode imersif. Ketika saya mengkliknya, saya ingin UI sistem (status & navigasi bar) muncul.
Inilah solusi saya:
1- Dalam Kegiatan, beberapa metode untuk menampilkan / menyembunyikan UI sistem (bilah status / nav)
2- Pastikan ini di tampilan root tata letak xml Anda
3 - Style for Full screen Activity akan memberikan status / navigasi bar latar belakang semi transparan ketika mereka muncul:
sumber