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?
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?
Yanıtlar:
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" ... />
<item name="android:windowFullscreen">true</item>
Manifest'te etkinlik teması ayarlayarak,
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>
ActionBar.
Benim onCreate işlevi içinde aşağıdaki kodu kullanın:
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
Kaynak: https://developer.android.com/guide/topics/ui/actionbar.html
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 {
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"
Ö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).
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
getSupportActionBar().hide();
}
İşlem çubuğunu basitçe gizlemeye zorlayabilirsiniz:
ActionBar actionbar = getSupportActionBar();
actionBar.hide();
Sadece varsayılan temanızı kullanın.
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 :)
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.
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">
Eylem çubuğunu kalıcı olarak gizleme adımları aşağıdadır:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">.Ş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.
Senin Eğer MainActivity uzanır AppCompatActivity , emin bir AppCompat tema kullanmaya dikkat edin.
Daha onCreateönce yönteminize bu kodu yazın setContentView:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
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.
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.
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
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>
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.
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.
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.