İşlem çubuğunu kalıcı olarak devre dışı bırakma


138

Bu kodu kullanarak petek eylem çubuğunu gizleyebilirsiniz:

getActionBar().hide();

Ancak klavye açıldığında ve kullanıcı herhangi bir şeyi kopyaladığında, eylem çubuğu tekrar gösterilir. İşlem çubuğunu kalıcı olarak nasıl devre dışı bırakabilirim?


2
Cevap bulundu hhh <etkinlik android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" ....>
— Biji

1
kopyalamaya çalıştığınızda bir eylem çubuğu değil, varsayılan görünümünü yapıştırın.
— Padma Kumar

evet, ama kopya yapıştırma bittikten sonra hala yok olmadı
— Biji

getSupportActionBar () gizlemek (.);
— Ameya Salagre

Yanıtlar:


252

Varyantı 3.2 öncesi cihazlarda kullanıyorsanız Theme.Holo.Lightve kullanmak Theme.Holo.Light.NoActionBaristiyorsanız, bunu aşağıdakilere ekleyebilirsiniz styles.xml:

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

ve ardından etkinliğinizin teması olarak ayarlayın:

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

8
Bu doğru cevap. @ Biji'nin çözümü gibi özel temaları kaldırmaz.
— phreakhead

1
Bildirimler çubuğunu gizlemek için ek bayrağın ne olacağı hakkında bir fikriniz var mı?
— jesses.co.tt

1
Ayrıca ActionBarActivity yerine FragmentActivity'den devralmayı gerekli buldum.
— Meanman

4
@ jesses.co.tt Bildirim çubuğu kullanılarak kaldırılabilir<item name="android:windowFullscreen">true</item>
— Mike Baxter

Bu benim için işe yaramadı. Aşağıdakileri kullandı: stackoverflow.com/questions/29790070/…
— Christopher Smit

116

Manifest'te etkinlik teması ayarlayarak,

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>

bunu yapmanın tek uygun yolu gibi görünüyor. ESP. Eğer altta bir akrabanız varsa ...
— jcfrei

1
Maalesef bu işe başlamanın tek yolu bu. Özel temayı kaldırır, ancak benim için tamamen kaldıran tek şey budur ActionBar.
— RileyE

3
Bu, yeni ADT'de AppCompat temasının uygulanmasıyla çalışmaz. Ben bununla savaşmayı düşünmüyorum - AppCompat'tan tamamen uzaklaşmaya çalışmak da iyi bir çözüm! @ Monchote yaklaşımını denedim ve benim için çalışıyor
— ericn

bu <etkinlik android: tema = "@ android: stil / Tema.NoTitleBar"> olmalıdır <etkinlik android: tema = "@ android: stil / Tema.NoTitleBar.Fullscreen">
— Amandeep Rohila

Samsung Galaxy
— J2'de


30
<application
    .
    .
    android:theme="@android:style/Theme.Holo.Light.NoActionBar"
    . >

belki bu sana yardım eder


3
Bu yöntemin minimum Api seviyesi 13 gerektirdiğini unutmayın
— Olumide

23

Android Studio varsayılan olarak oluşturulan Etkinlik süper sınıfı ActionBarActivityve daha sonra, diğer yanıtlardaki çözümlerin hiçbiri işe yaramaz. Çözmek için sadece üst sınıfı değiştirin:

public class xxxActivity extends ActionBarActivity{

için:

public class xxxActivity extends Activity {

Bu benim için yaptı. Yardımınız için teşekkürler.
— j_fulch

17

ActionBar ve Title olmadan tam ekran almak istiyorsanız.

Style.xml dosyasına ekleyin

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

ve manifest.xml'deki stili kullanın.

android:theme="@style/AppTheme.NoActionBar" 

12

Özel temalar veren ve eylem çubuğu olmayan en iyi yol, projemdeki tüm etkinlikler için bir SuperClass oluşturmak ve onCreate () 'de aşağıdaki kod satırını çağırmak -

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

Her zaman benim için çalışıyor. Bu yaklaşımdaki tek sorun, uygulamayı başlatırken saniyenin bir kısmı için eylem çubuğu göreceksiniz (Etkinlik değil, tam uygulama).


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

12

Styles.xml adresine gidin Bu DarkActionBar öğesini NoActionBar olarak değiştirin

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

7

İşlem çubuğunu basitçe gizlemeye zorlayabilirsiniz:

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

Sadece varsayılan temanızı kullanın.


7

Yalnızca eylem çubuğu olmayan bir tema istiyorsanız, örneğin 'NoActionBar' varyantını kullanabilirsiniz. temel temanız aşağıdaki gibi ise

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

o zaman kullanabilirsiniz

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

Ancak ana temanızın özelliklerini korumak istiyorsanız, yani AppTheme aşağıdaki gibi yapabilirsiniz

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

Temel temanızın tüm özelliklerini bu şekilde koruyabilir ve bunları NoActionBar temanıza açıkça eklemenize gerek yoktur :)


6

Holo temasını kullanmayın, Eylem Çubuğu kaybolacaktır. Bu kod benim için API 8+ üzerinde, destek lib v7 ile çalışıyor:

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

etkinliğiniz için bu temayı ayarlayın:

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

ve aktivite sınıfınızda.

ActionBarActivity'yi genişlettiğinde bile çalışır.


6

Altında res -> değerler -> styles.xml

Değişiklik

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

için

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


5

Heres hızlı bir çözüm.

Styles.xml dosyasını bulursunuz ve temel uygulama temasını aşağıda gösterildiği gibi "Theme.AppCompat.NoActionBar" olarak değiştirirsiniz.

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

3

Eylem çubuğunu kalıcı olarak gizleme adımları aşağıdadır:

  1. App / res / değerleri / styles.xml dosyasını açın.
  2. "Apptheme" adlı stil öğesini bulun. Benzer görünmelidir <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">.
  3. Şimdi üst öğeyi adına "NoActionBar" içeren başka bir temayla değiştirin.

    a. Activity_main.xml dosyasının tasarım sekmesine geçip ardından kullanıcı arayüzünün tema açılır listesinde sağlanan her temayı deneyerek bir temanın nasıl göründüğünü de kontrol edebilirsiniz.

  4. Senin Eğer MainActivity uzanır AppCompatActivity , emin bir AppCompat tema kullanmaya dikkat edin.


3

Daha onCreateönce yönteminize bu kodu yazın setContentView:

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

3

Ben bunun yerine bir Tasarımcı yaklaşımı göndermek istiyorum, bu tasarım iş mantığınızdan ayrı tutacak:

Adım 1. (res-> değerler-> styles.xml) içinde yeni stil oluşturun: Temel olarak, genel şemanızın farklı üst öğe ile kopyasıdır - 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>

Adım 2: AndroidManifest.xml dosyanızda, bu temayı istediğiniz etkinliğe ekleyin: örneğin, ana etkinliğimi işlem çubuğu olmadan istiyorum, bu yüzden aşağıdaki gibi ekleyin:

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

Birçok şeyi denedikten sonra bu benim için en iyi çözüm.


2

onCreate işlevinde aşağıdaki kodu ekleyin

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

ve sadece android.support.v7.app.ActionBar dosyasını içe aktarın


2

styles.xmlDosyadaki varsayılan temanın adını şu şekilde değiştirerek yeni bir tema oluşturduğunuzdan emin olun :

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

ve temayı, açılır menüden main_activity.xmltemanızın adı verilen her şeye dönüştürün.


1

Eylem çubuğunu kaldırırken ViewPager'i korumak istediğiniz başka bir ilginç çözüm, şov olarak bir stile sahip olmaktır

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

Android'deki Dialer uygulamalarının çoğunun eylem çubuğu olmadan ViewPager'i göstermesinin yolu budur.

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


bu çözelti üstte beyaz bir alan bırakır.
— Felipe FMMobile

Bu, NoActionBarStyle üst öğesini @ style / Widget.AppCompat.ActionBar.TabBar (Ben bir ViewPager kullanıyorum) olarak değiştirdiysem, Theme.AppCompat.Light ile Android 2.3'te benim için çalıştı
— TouchBoarder 3:14

1

bunu kendi manifüdünüzde deneyin

 <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

ActionBarAndroid'de devre dışı bırakmanın iki yolu vardır .

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

1

Bunu styles.xmldosyada kullan :


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

0

Bu çözümü kullanıyorum:

manifest'te, etkinlik etiketinizin içinde:

android:label="@string/empty_string"

ve strings.xml dosyasında:

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

Bu şekilde ActionBar'ı (veya Araç Çubuğunu) başlıkla birlikte tutarsınız, ancak Etkinlik oluşturulduğunda başlık otomatik olarak boş kalır.


0

Garip bir şekilde, 4.4.2 çalıştıran bir Nexus 7 (API 19) üzerine inşa ederken bunların hiçbiri benim için çalışmadı. Çoğunlukla, en azından boş bir etkinlik uygulaması oluşturduktan sonra en son Android Studio (1.2.1.1) sürümü ile:

android: theme = "@ stil / AppTheme"

etkinlik öğesinde değil uygulama öğesinde bulunur. Yukarıdaki kodu kaldırdım veya değiştirmeye çalıştıysam:

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

uygulama çalışmaz ... Bu sizin başınıza geliyorsa, styles.xml dosyanıza (res> değerler> styles.xml) gidin ve .NoTitleBar öğesini bu blok gibi üst öğenin sonuna ekleyin:

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

AndroidManifest dosyasında değişiklik yapılması gerekmez.


0

Burada activity_main.xml, çizgiden oradan ayarlayabilirsiniz:

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

Bazen böyle şeyleri gördüğünüzde buraya tıklayın , Buradan "noActionBar" temasını seçebilirsiniz.

Umarım size yardımcı olmuştur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.