SORU
17 EKİM 2014, Cuma


Özel görünüm AppCompat ActionBar yok't tam ekran alın Android Lolipop genişliği

Yani, ben sadece benim kod temeli Lollipop için güncellendi ve Eylem Çubuğu ile ilgili sorunlar yaşıyorum. AppCompat ve ActionBarActivity kullanarak, ve özel bir görünüm şişirme ediyorum. Özel görünümü artık ekranın bütün genişliğini, Sol tarafta ince bir şerit bırakıyor gibi görünüyor

Building with 19 Bakmak için kullanılan yol

Building with 21 Artık her şey görünüyor

Bu Eylem Bar kurmak için kullanıyorum kodudur. Herkes herhangi bir fikir var mı?

final ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
    actionBar.setDisplayHomeAsUpEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
    actionBar.setCustomView(R.layout.action_bar_content_search_custom_view);
    actionBar.setBackgroundDrawable(null);
    // actionBar.setStackedBackgroundDrawable(null);
    TextView title = (TextView) actionBar.getCustomView().findViewById(R.id.action_bar_title);
    title.setText(R.string.youtube);
    ImageView back = (ImageView) actionBar.getCustomView().findViewById(R.id.action_bar_back);
    back.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });
}

Edit

Özel görünümü ve arka plan değiştirme şimdi tüm genişliğini kaplıyor. Sorun, nasıl bir CustomView bu ActionBar tüm genişliği kadar sürebilir yapabilir miyiz?

CEVAP
19 EKİM 2014, Pazar


Bu gibi görünüyor appcompat-v7 son güncelleme: ActionBar en son değişiklikleri nedeniyle oluşur. Eylem barlar kolu ne kadar önemli değişiklikler var gibi görünüyor.

Aynı sorunu yaşadım ve ** 21, ve özellikle de aşağıdaki alıntıyı okuduktan sonra bir çözüm buldum.

Android L (level 21 API) ile başlayan, eylem çubuğundaki uygulama düzeni içinde herhangi bir Araç gereci ile temsil edilebilir. Uygulama araç Çubuğu Aktivite eylem bar olarak ele alınması gereken bir Aktivite için bir sinyal olabilir. Bu özelliği kullanmak faaliyetlere sağlanan birini kullanın .NoActionBar temalar, windowActionBar false veya başka bir pencere özelliği istemek için öznitelik.

Gördüğüm kadarıyla, AppCompat tema değiştirildi ve bir yandan bazı şeyleri kırmak ama diğer yandan çok daha fazla esneklik sağlamak için görünüyordu. Aşağıdaki adımları öneririz:

  1. Yukarıdaki alıntı açıklandığı gibi etkinliği .NoActionBar stil kullanın
  2. android.support.v7.widget.Toolbar Etkinlik için bir düzen ekleyin
  3. app:contentInsetStart="0dp" özniteliğini ayarlayın.Bu soruyu açıklayan marjı ile ana konudur
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@ id/actionBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:contentInsetEnd="0dp"
    app:contentInsetStart="0dp" >
</android.support.v7.widget.Toolbar>

Genellikle ayrı bir düzen içinde, yalnızca birden çok faaliyetlerinde kullanılan tek bir yerde araç Çubuğunu özelleştirmek için gereken şekilde, dosya ve aktivite düzeni içinde include yapmak için önerilir

<include layout="@layout/view_action_bar" />
4=başlangıç
  • Etkinliği findViewById setSupportActionBar signal to the Activity which Toolbar should be treated as the Activity's action bar onCreate kullanın
    Toolbar actionBar = (Toolbar) findViewById(R.id.actionBar);
    setSupportActionBar(actionBar);
    
    5=başlangıç
  • Bunu bir kez yaptığınızda, tüm eylemler onCreateOptionsMenu eklenen araç çubuğu eklenecek ve faaliyet eylem bar olarak kabul edilecektir.
  • Daha fazla özelleştirme araç Çubuğu istediğiniz gibi (vb alt görünümleri Ekleyin.)

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

    YORUMLAR

    SPONSOR VİDEO

    Rastgele Yazarlar

    • Joseph Herscher

      Joseph Hersc

      14 Mart 2007
    • SketchBookPro

      SketchBookPr

      6 Mayıs 2009
    • TomOdellVEVO

      TomOdellVEVO

      29 Mayıs 2012