2013-01-11 9 views
6

Obecnie używam niestandardowy układ dla mojego MenuItem:Jakie wypełnienie, margines i rozmiar należy użyć w niestandardowym układzie MenuItem?

enter image description here

Kod jest prosty:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/menu_custom" 
     android:actionLayout="@layout/menu_layout" 
     android:showAsAction="always"/> 

</menu> 

Choć rozmiar ikon w piksel jest opisany w projektowaniu i wytycznych Android, ja nie mam pojęcia na marginesie, dopełnieniu, szerokości i wysokości, których powinienem używać dla tej ikony, aby wyglądała ona legalnie na wszystkich urządzeniach.

Mój obecny układ:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/searchProgressWrapper" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 


    <ImageButton 
     android:id="@+id/ivfolder" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center" 
     android:scaleType="fitCenter" 
     android:background="@drawable/abs__item_background_holo_dark" 
     android:src="@drawable/ic_menu_archive" /> 


</RelativeLayout> 

Dużym problemem jest to, że jak widać, szerokość ikony jest całkowicie błędne i nie jest w ogóle podobny do innych elementów menu.

Odpowiedz

14

android:minWidth powinny być 56dip, android:paddingBottom i android:paddingTop powinny być 8dip. Znalezione w <sdk>/platforms/android-17/data/res/values/dimens.xml:

<!-- Minimum width for an action button in the menu area of an action bar --> 
<dimen name="action_button_min_width">56dip</dimen> 

<!-- Vertical padding around action bar icons. --> 
<dimen name="action_bar_icon_vertical_padding">8dip</dimen> 
+0

Jeszcze raz bardzo dziękuję ;-) Potrzebuję tylko 8 minut, aby poczekać, zanim będę mógł zaakceptować ... –

+0

nie zapomnij ;-) –

+0

Houps .... Naprawiono! –

0
View view = mToolbar.getMenu().findItem(R.id.spinner).getActionView(); 

view.setPadding(0,0,0,0); 

Ten pracował dla mnie.