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?


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" ... />

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"
....
>

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


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 {

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" 

13

Pergi ke styles.xml Ubah DarkActionBar ini menjadi NoActionBar

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

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).


12
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    getSupportActionBar().hide();
}

7

Anda dapat memaksa menyembunyikan bilah tindakan dengan mudah:

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

Cukup gunakan tema default Anda.


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.


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 :)


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">


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>

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.


3

Ketik kode ini ke onCreatemetode Anda sebelumnya setContentView:

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

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.


2

dalam fungsi onCreate tambahkan kode berikut

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

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


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.


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


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" >

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);

1

Ada dua cara untuk menonaktifkan ActionBardi Android.

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main); 

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>

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.


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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.