Cara menonaktifkan bilah tindakan secara permanen

138

Saya dapat menyembunyikan bilah tindakan di sarang lebah menggunakan kode ini:

getActionBar().hide();

Namun saat keyboard terbuka, dan pengguna menyalin-tempel apa pun, bilah tindakan muncul lagi. Bagaimana cara menonaktifkan bilah tindakan secara permanen?

Biji
sumber
2
Ketemu jawabannya hhh <activity android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" ....>
Biji
1
yang bukan bilah tindakan saat Anda mencoba menyalin, tempel tampilan defaultnya.
Padma Kumar
ya, tapi setelah copy paste berakhir, masih ada yang tidak hilang
Biji
getSupportActionBar (). hide ();
Ameya Salagre

Jawaban:

253

Jika Anda menggunakan Theme.Holo.Lightdan ingin menggunakan Theme.Holo.Light.NoActionBarvarian pada perangkat pra 3.2, Anda dapat menambahkan ini ke styles.xml:

<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style> 

lalu setel sebagai tema aktivitas Anda:

<activity android:theme="@style/NoActionBar" ... />
monchote
sumber
8
Ini jawaban yang benar. Tidak menghapus tema khusus seperti solusi @ Biji.
phreakhead
1
Tahu apa bendera tambahan yang akan disetel untuk menyembunyikan bilah notifikasi?
jesses.co.tt
1
Saya juga merasa perlu mewarisi dari FragmentActivity, bukan ActionBarActivity.
Meanman
4
@ jesses.co.tt Bilah notifikasi dapat dihapus menggunakan<item name="android:windowFullscreen">true</item>
Mike Baxter
Ini tidak berhasil untuk saya. Digunakan berikut ini: stackoverflow.com/questions/29790070/…
Christopher Smit
116

Dengan menyetel tema aktivitas di Manifes,

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>
Biji
sumber
sepertinya ini satu-satunya cara yang tepat untuk melakukannya. esp. jika Anda kebetulan memiliki tata letak relativel di bagian bawah ...
jcfrei
1
Sayangnya, ini satu-satunya cara agar saya bisa bekerja. Ini menghapus tema khusus, tetapi itu benar-benar satu-satunya hal yang sepenuhnya menghapus ActionBar, bagi saya.
RileyE
3
Ini tidak berfungsi dengan penerapan tema AppCompat di ADT baru. Saya tidak berpikir melawan ini - mencoba melepaskan diri sepenuhnya dari AppCompat adalah solusi yang baik juga! Saya sudah mencoba pendekatan @ monchote dan berhasil untuk saya
ericn
ini harus <activity android: theme = "@ android: style / Theme.NoTitleBar"> bukan <activity android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen">
Amandeep Rohila
Pada Samsung Galaxy J2 itu membuat aplikasi macet tetapi tidak ada masalah pada Nexus 9
Suici Doga
31
<application
    .
    .
    android:theme="@android:style/Theme.Holo.Light.NoActionBar"
    . >

mungkin ini membantu Anda

semih
sumber
3
Perhatikan bahwa metode ini membutuhkan minimum api level 13
Olumide
23

Dengan superclass Activity yang dihasilkan default Android Studio is ActionBarActivityand then, tidak ada solusi dalam respons lain yang berfungsi. Untuk menyelesaikannya, ganti saja superclass:

public class xxxActivity extends ActionBarActivity{

untuk:

public class xxxActivity extends Activity {
Piotr Müller
sumber
Ini berhasil untuk saya. Terima kasih atas bantuan Anda.
j_fulch
17

Jika Anda ingin mendapatkan layar penuh tanpa actionBar dan Judul.

Tambahkan di style.xml

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
      <item name="windowActionBar">false</item>
      <item name="windowNoTitle">true</item>
      <item name="android:windowFullscreen">true</item>
</style>

dan gunakan gaya di manifest.xml.

android:theme="@style/AppTheme.NoActionBar" 
reza.cse08
sumber
13

Pergi ke styles.xml Ubah DarkActionBar ini menjadi NoActionBar

style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Dr Adams
sumber
12

Cara terbaik yang saya temukan yang memberikan tema khusus dan tidak ada bilah tindakan, adalah membuat SuperClass untuk semua aktivitas dalam proyek saya dan di dalamnya onCreate () panggil baris kode berikut -

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

Itu selalu berhasil untuk saya. Satu-satunya masalah dalam pendekatan ini adalah, Anda akan melihat bilah tindakan sepersekian detik saat memulai aplikasi (Bukan aktivitas, aplikasi lengkap).

cupu
sumber
12
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    getSupportActionBar().hide();
}
Rajarshee Mitra
sumber
7

Anda dapat memaksa menyembunyikan bilah tindakan dengan mudah:

ActionBar  actionbar = getSupportActionBar();
actionBar.hide();

Cukup gunakan tema default Anda.

Trixie Belarmino
sumber
6

Jangan gunakan tema Holo dan Actionbar akan hilang. Kode ini berfungsi untuk saya di API 8+, dengan dukungan lib v7:

<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>

setel tema itu untuk aktivitas Anda:

<activity android:theme="@style/NoActionBar" ... />

dan di kelas aktivitas Anda.

Ia bekerja bahkan ketika itu memperluas ActionBarActivity.

Hoang Nguyen Huu
sumber
6

Jika Anda hanya menginginkan tema tanpa bilah tindakan, Anda dapat menggunakan varian 'NoActionBar', misalnya. jika tema dasar Anda seperti di bawah ini

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

maka Anda bisa menggunakan

<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

Tetapi jika Anda ingin mempertahankan properti tema utama Anda yaitu AppTheme, Anda dapat melakukan seperti di bawah ini

<style name="AppThemeNoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

Anda dapat mempertahankan semua properti tema dasar Anda dengan cara ini dan tidak perlu menambahkannya secara eksplisit di tema NoActionBar Anda :)

sanket vetkoli
sumber
6

Di bawah res -> nilai -> styles.xml

Perubahan

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

Untuk

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

Shubham Shekhar
sumber
5

Inilah solusi cepat.

Anda menemukan styles.xml dan mengubah tema aplikasi dasar menjadi "Theme.AppCompat.NoActionBar" seperti yang ditunjukkan di bawah ini.

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
</style>
odlh
sumber
3

Berikut adalah langkah-langkah untuk menyembunyikan bilah tindakan secara permanen:

  1. Buka app / res / values ​​/ styles.xml.
  2. Cari elemen gaya yang bernama "apptheme". Harus terlihat mirip dengan <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">.
  3. Sekarang ganti induk dengan tema lain yang mengandung "NoActionBar" di namanya.

    Sebuah. Anda juga dapat memeriksa bagaimana tema terlihat dengan beralih ke tab desain activity_main.xml dan kemudian mencoba setiap tema yang disediakan dalam daftar tarik-turun tema di UI.

  4. Jika MainActivity Anda memperluas AppCompatActivity , pastikan Anda menggunakan tema AppCompat.

Ravi Chandra
sumber
3

Ketik kode ini ke onCreatemetode Anda sebelumnya setContentView:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
pavel_coder
sumber
3

Saya ingin memposting pendekatan Desainer untuk ini, ini akan membuat desain terpisah dari logika bisnis Anda:

Langkah 1. Buat gaya baru di (res-> values-> styles.xml): Pada dasarnya ini adalah salinan keseluruhan skema Anda dengan induk yang berbeda - parent = "Theme.AppCompat.Light.NoActionBar"

<!-- custom application theme. -->
    <style name="MarkitTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimary</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="android:windowNoTitle">true</item>
    </style>

Langkah 2: Di AndroidManifest.xml Anda, tambahkan tema ini ke aktivitas yang Anda inginkan: misalnya saya ingin aktivitas utama saya tanpa bilah tindakan jadi tambahkan ini seperti di bawah ini:

<activity android:name=".MainActivity"
            android:theme="@style/MarkitTheme">

Ini adalah solusi terbaik bagi saya setelah mencoba banyak hal.

Varun Ved
sumber
2

dalam fungsi onCreate tambahkan kode berikut

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

dan cukup impor android.support.v7.app.ActionBar

Rahul
sumber
2

Pastikan Anda membuat tema baru dengan mengubah nama tema default di styles.xmlfile menjadi:

 <style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">

dan kemudian mengubah tema dari drop-down di bawah Anda main_activity.xmlmenjadi apa pun yang Anda sebut tema Anda.

Raif Deari
sumber
1

Solusi menarik lainnya di mana Anda ingin mempertahankan ViewPager sambil menghapus bilah tindakan adalah memiliki gaya sebagai pertunjukan

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:actionBarStyle">@style/NoActionBarStyle</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
    <item name="android:backgroundSplit">@null</item>
    <item name="android:displayOptions"></item>
</style>

Ini adalah cara sebagian besar aplikasi Dialer di android menampilkan ViewPager tanpa bilah tindakan.

Ref: https://github.com/CyanogenMod/android_packages_apps_Dialer

Avinash R
sumber
solusi ini meninggalkan area putih di atas.
Felipe FMMobile
Ini bekerja untuk saya di Android 2.3 dengan Theme.AppCompat.Light jika saya mengubah induk NoActionBarStyle menjadi @ style / Widget.AppCompat.ActionBar.TabBar (Saya menggunakan ViewPager)
TouchBoarder
1

coba ini di manifist Anda

 <activity
        android:name=".MainActivity"
        android:theme="@android:style/Theme.Holo.NoActionBar"
        android:label="@string/app_name" >
Mrad4Tech
sumber
1
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   android.support.v7.app.ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.hide();
    }
    setContentView(R.layout.activity_main);
Abhijeet
sumber
1

Ada dua cara untuk menonaktifkan ActionBardi Android.

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main); 
gaurav
sumber
1

Gunakan ini di styles.xmlfile:


<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
Mohsen Emami
sumber
0

Saya menggunakan solusi ini:

di manifes, di dalam tag aktivitas Anda:

android:label="@string/empty_string"

dan di strings.xml:

<string name="empty_string">""</string>

Dengan cara ini Anda mempertahankan ActionBar (atau Toolbar) dengan judul, tetapi ketika Aktivitas jika dibuat, judul secara otomatis kosong.

Lorenzo Barbagli
sumber
0

Anehnya, tidak ada yang berhasil untuk saya saat membangun Nexus 7 yang menjalankan 4.4.2 (API 19). Untuk sebagian besar, setidaknya dengan versi terbaru Android Studio (1.2.1.1) setelah membuat aplikasi aktivitas kosong,:

android: theme = "@ style / AppTheme"

ada di elemen aplikasi, bukan elemen aktivitas. Jika saya menghapus kode di atas atau mencoba mengubahnya menjadi:

android: theme = "@ android: style / Theme.Holo.Light.NoActionBar"

aplikasi tidak akan berjalan ... jika ini terjadi pada Anda, cukup masuk ke file styles.xml Anda (res> values> styles.xml) dan tambahkan .NoTitleBar ke akhir induk seperti blok ini:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>

Tidak diperlukan perubahan pada file AndroidManifest.

whyoz
sumber
0

Di Anda activity_main.xml, Anda dapat menyesuaikan dari sana di baris:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
    android:theme="@style/Theme.Design.Light.NoActionBar"
.......    
">

Terkadang ketika Anda dapat melihat hal-hal seperti ini Klik di sini , Anda dapat memilih dari sini tema "noActionBar".

Semoga saya membantu Anda.

John Melody Melissa
sumber