2013-01-11 64 views
6

मैं वर्तमान में मेरे MenuItem के लिए एक कस्टम लेआउट का उपयोग कर रहा:मेनूइटम कस्टम लेआउट के लिए मुझे किस पैडिंग, मार्जिन और आकार का उपयोग करना चाहिए?

enter image description here

कोड बुनियादी है:

<?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> 

पिक्सेल में आइकन आकार एंड्रॉयड डिजाइन और दिशानिर्देशों में वर्णित किया जाता है, मैं मुझे इस आइकन के लिए मार्जिन, पैडिंग, चौड़ाई और ऊंचाई पर कोई जानकारी नहीं है, इसलिए यह सभी उपकरणों पर कानूनी दिखाई देगा।

मेरे वर्तमान लेआउट:

<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> 

बड़ी समस्या, जैसा कि आप देख सकते हैं, आइकन की चौड़ाई पूरी तरह से गलत है और न ही अन्य MenuItems को बिल्कुल भी है।

उत्तर

14

android:minWidth56dip, android:paddingBottom होना चाहिए और android:paddingTop8dip होना चाहिए। <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

एक बार फिर, बहुत बहुत धन्यवाद ;-) मुझे स्वीकार करने से पहले प्रतीक्षा करने के लिए केवल 8 मिनट की जरूरत है ... –

+0

मत भूलना ;-) –

+0

Houps .... फिक्स्ड! –

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

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

यह मेरे लिए काम किया।