SORU
14 Aralık 2011, ÇARŞAMBA


Nasıl etkinlik oluşturulmadan önce işlem çubuğu gizlemek için, ve tekrar izleyelim o zaman?

Uygular Petek benim app ekran sıçrama gerekiyor. Etkinliğin açılış gösterisi için onCreate bu kodu kullanın:

setContentView(R.layout.splash);
getActionBar().hide();

ve bir süre sonra ana UI göstermek için bu kod:

setContentView(R.layout.main);
getActionBar().show();

AmaönceonCreate denir ve sıçrama görünür, eylem gösterilen bar zaman zaman küçük bir miktar var.

Ne kadar belli etmemeye yapmış olabilir miyim?

İşlem çubuğu olmadan etkinlik için tema uygulamak için çalıştım:

<item name="android:windowActionBar">false</item>

ama bu durumda getActionBar() her zaman döndürür null ve tekrar göstermek için hiçbir yolu buldum.

CEVAP
5 Ocak 2013, CUMARTESİ


Gerçekten android:windowActionBar="false" ayar ActionBar devre dışı bırakır ama dediğiniz gibi, daha sonra getActionBar(); null döndürüyor. Bu çözüldü.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    getActionBar().hide();

    setContentView(R.layout.splash); // be sure you call this AFTER requestFeature

Bu ActionBar oluşturur ve hemen görüntülenmesi için şansı vardı önce onu gizler.

Ama şimdi başka bir sorun var. Tema windowActionBar="false" koyarak sonra, bir Etkinlik ActionBar yerine normal Pencere Başlığı çizer.
*.NoTitleBar hisse senedi temalar kullanarak bunu önlemek için çalışıyoruz ya da kendi tema <item name="android:windowNoTitle">true</item> put deneyin, işe yaramaz.
Nedeni ActionBarbağlıdırPencere Başlığını kendisi - ActionBar görüntülemek için dönüştürülmüş bir Pencere Başlığı.
Bize yardımcı olan hile Aktivite tema xml için bir şey daha eklemek için:

<item name="android:windowActionBar">false</item>
<item name="android:windowTitleSize">0dp</item>

Bu sıfır yüksekliği ile Pencere Başlığı, böylece neredeyse görünmez hale getirecek .

Giriş ekranını görüntülemek tamamladıktan sonra senin durumunda, sadece diyebilirsin

setContentView(R.layout.main);
getActionBar().show();

ve bitirdiniz. Etkinlik ActionBar titreme yok, ne de Pencere Başlığı gösteren başlayacak.

EKLENTİ: Size göstermek ve ActionBar birden çok kez belki gizlerseniz o kadar fark varilkgösteriyordeğilanimasyonlu. Gösterme ve gizleme sonra gelen animasyon. Eğer ilk gösteren de animasyon yapmak istiyorsanız bunu kullanabilirsiniz:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_ACTION_BAR);

    // delaying the hiding of the ActionBar
    Handler h = new Handler();
    h.post(new Runnable() {     
        @Override
        public void run() {
            getActionBar().hide();
        }
    });

Aynı şey ile elde edilebilir:

protected void onPostResume() {
    super.onPostResume();
    getActionBar().hide();

ama eğer bu etkinliğin ilk gösterimi olup olmadığını kontrol etmek için fazladan mantık gerekebilir.

Bu fikir biraz ActionBar gizleme demektir. Bir şekilde biz bu ActionBar gösterilecek izin ver, ama hemen gizleyin. İlk olmayan hareketli ve sonraki ikinci olarak kabul edilecektir gösteren ötesine geçeriz böylece, böylece hareketli olacak.

Tahmin edebileceğiniz gibi bu ActionBar bir şans varolabilirgecikmeli işlem tarafından gizlenmiştir önce görülebilir. Bu aslında böyledir. Zaman hiçbir şey en görülse de, arada bir, bir an için ActionBar titreşimi ikinci görebilirsin henüz.

Her durumda bu güzel bir çözüm değil, herhangi bir öneri hoş geldiniz diyorum.

Ayrıcav7 destek actionbar kullanıcı için kod:

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getSupportActionBar().hide();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • amc

    amc

    21 EYLÜL 2005
  • The Warp Zone

    The Warp Zon

    24 AĞUSTOS 2007