10

मैं पिछले कुछ दिनों से एक्शनबार और एक्शनबैरशेलॉक के साथ काम कर रहा हूं, और एक्शनबार में कुछ जानकारी भरते समय मुझे कुछ समस्याएं आ रही हैं।एंड्रॉइड (एक्शनबारशरलॉक) क्या पोर्ट्रेट और लैंडस्केप में एक ही एक्शनबार ऊंचाई को रखने का कोई तरीका है?

जब आवेदन पोर्ट्रेट मोड में चलाता है, ActionBar ठीक लग रहा है, और सभी डेटा प्रदर्शित किया जा सकता, उदाहरण के लिए:

ActionBar in portrait mode

लेकिन जब मैं अनुप्रयोग स्विच परिदृश्य में प्रदर्शित करने के लिए, कुछ डेटा की काटी है:

ActionBar in landscape mode

आप देख सकते हैं कि कैसे दोनों स्थिति आइकन और ईमेल ActionBar के नए ऊंचाई की वजह से काटा गया है।

इस मामले में, मैं चित्र और परिदृश्य के लिए एक ही आकार रखना चाहता हूं ताकि ऐप ठीक दिख सके। मैं एक्शन बार शीर्षक के फ़ॉन्ट आकार को कम नहीं कर सकता, क्योंकि इसमें अन्य आइकन शामिल हो सकते हैं।

तरह से मैं कार्रवाई बार शीर्षक और उपशीर्षक में ये आइकन डाल इस समस्या को हल करने के लिए Html.fromHtml

कोई भी विचार का उपयोग करना है? मैं एक्शनबार शेरलॉक लाइब्रेरी का उपयोग कर रहा हूं!

उत्तर

23

एक, शायद बहुत सुंदर दृष्टिकोण नहीं, dimens.xml में एक्शनबार के लिए डिफ़ॉल्ट ऊंचाई मानों को ओवरराइड करना हो सकता है।

उदा। चित्र में डिफ़ॉल्ट मान है:

<dimen name="abs__action_bar_default_height">48dip</dimen> 

और परिदृश्य में:

<dimen name="abs__action_bar_default_height">40dip</dimen> 

वहाँ यह करने के लिए एक क्लीनर तरीका हो सकता है, लेकिन मैं स्वीकार करने के लिए मैं के लिए ActionBarSherlock के आंतरिक भागों के बारे में बहुत कम जानते है उस।


संपादित करें: यदि स्थानीय ActionBar आईसीएस पर किया जा रहा है यह शायद काम नहीं करेगा, क्योंकि ऊंचाई तो ?android:attr/actionBarSize में मंच मूल्य हो जाएगी इसके बारे में सोचने के लिए आओ,। मैं आपको एक बेहतर सुझाव की प्रतीक्षा करने की सलाह दूंगा, उदाहरण के लिए खुद जेक से।

दूसरा संपादित करें:

<item name="actionBarSize">@dimen/some_value</item> 
<item name="android:actionBarSize">@dimen/some_value</item> 
:
यह सब आप इसे दोनों आईसीएस और पूर्व आईसीएस उपकरणों पर ActionBarSherlock साथ काम करने के लिए क्या करने की जरूरत की तरह लगता है जेक का जबाब के बाद आपको अपने ऐप्लिकेशन की विषय के लिए निम्न जोड़ने है

फिर आप प्रासंगिक चित्र/भूमि संसाधन बाल्टी में वास्तविक मान जोड़ सकते हैं।

तीसरा संपादित [धन्यवाद alvarolb]: एक्सएमएल उदाहरण शैली के लिए:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar"> 
     <item name="actionBarSize">48dip</item> 
     <item name="android:actionBarSize">48dip</item> 
    </style> 
</resources> 

और इसी गतिविधि में, इस नई शैली

android:theme="@style/Theme.Styled" 

सेट और यह काम करता है .. !

+0

जेक से सुनने के विचार को दोहराया। यह एक दिलचस्प मुद्दा है। मैंने आईसीएस पर वेनिला जीटीकॉक ऐप में अभी परीक्षण किया है, यह इस पाठ को काटने से इस पाठ को प्रदर्शित नहीं करता है। – Davek804

+0

अच्छा दृष्टिकोण, लेकिन हाँ, मुझे लगता है कि यह केवल प्री-आईसीएस उपकरणों के लिए काम करेगा। GTalk ऐप में इस समस्या को प्रकट नहीं होता है क्योंकि शीर्षक आकार (उपशीर्षक नहीं) मूल आकार से छोटा प्रतीत होता है। लेकिन जैसा कि मैंने टिप्पणी की, मैं ऐसा नहीं कर सकता क्योंकि शीर्षक में अन्य (बड़े) आइकन भी शामिल होंगे। मैं जेक की प्रतिक्रिया का इंतजार करूंगा =) –

+1

आपका अनुवर्ती सही है। थीम में एक गैर-एंड्रॉइड-प्रीफिक्स्ड संस्करण की आवश्यकता है, साथ ही यह प्री-आईसीएस पर भी काम करता है। अनुशंसा करते हैं कि आप शीर्ष खंड को हड़ताल करें। –

संबंधित मुद्दे