İş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.