2015-01-22 27 views
6

Sadece benim app Malzeme Tasarım Araç Çubuğu benimsendi. Önceden Lollipop cihazlarda çalışmak için Chris Banes blog'un yönergelerini takip ettim. Ancak, bu işlem menü öğelerini dikey olarak ortalanmış hale getiremiyorum.Android Malzeme tasarım araç çubuğu özel eylem menüsü doğru şekilde hizalanmamış

İşte Kitkat cihazında neye benzediğini gösteren bir ekran görüntüsü. Kitkat screenshot

Başlık ve menü simgelerinin hizalanmadığını görebileceğiniz gibi. Bir şekilde başlık doğru şekilde düzenlenmiş, ancak eylem menülerine veya gezinme simgesine değil. Bunun yerine dibe hizalanırlar. düzenine yerçekimi ama hiçbir şey yapmaz:

İşte benim araç çubuğu düzeni

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    android:background="?attr/colorPrimaryDark"/> 

Ben android koyarak çalıştı olduğunu. İşte

eylem çubuğu olarak araç çubuğu atamak benim soyut etkinlik kodudur

public abstract class BaseMaterialActivity extends ActionBarActivity { 

private Toolbar toolbar; 

public abstract int getLayoutResources(); 

public abstract boolean isShowActionBar(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(getLayoutResources()); 
    if (isShowActionBar()) { 
     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     if (toolbar != null) { 
      setSupportActionBar(toolbar); 
      toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_drawer)); 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
      getSupportActionBar().setDisplayShowTitleEnabled(true); 
      getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_nav_back); 
     } 
    } 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
    } 
} 

public Toolbar getToolbar() { 
    return toolbar; 
} 

}

İşte

benim menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id="@+id/action_filter" 
     android:icon="@drawable/ic_filter" 
     android:orderInCategory="1" 
     app:showAsAction="always|withText" 
     android:title="@string/filters" /> 

    <item 
     android:id="@+id/action_cart" 
     app:actionLayout="@layout/action_cart_icon_layout" 
     android:orderInCategory="2" 
     app:showAsAction="always" 
     android:title="@string/cart" /> 


</menu> 

almak konusunda herhangi bir yardım veya işaretçisi dikey olarak merkezlenecek eylem menüsü takdir edilecektir. Teşekkür ederim! Bunun yerine

android:layout_height="?android:attr/actionBarSize" 

yazma

android:layout_height="?actionBarSize" 

arasında

cevap

11

ikinci doğru yüksekliğe (56dp varsayılan, tabletler normal bir manzara 48dp ve 64dp) ile AppCompat teması ile tanımlanır.

Not: Ne yazdığınız, yalnızca Android 5.0'da düzgün çalışır.

+1

Aman Tanrım! işe yarıyor!! Bu beni deli ediyor! teşekkür ederim!! –

İlgili konular