2013-03-12 8 views
8

मैं एक बहुत ही बुनियादी लेआउट बनाया है: "। Drawable टेक्स्ट की शुरुआत करने के लिए तैयार हो"DrawableStart का व्यवहार एंड्रॉइड दस्तावेज़ों से मेल नहीं खाता है?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Button" 
      android:drawableStart="@drawable/ic_launcher" /> 

    </LinearLayout> 
</RelativeLayout> 

अनुसार the documentation for drawableStart को,

हालांकि, जब मेरी एंड्रॉयड 4.0.4 फोन पर चलाने के लिए, मैं बजाय इस देखें:

enter image description here

क्यों आइकन और पाठ के बीच इतनी बड़ी खाई है? this answer को,

अनुसार, "Android 4.0 के साथ (एपीआई स्तर 14) आप एंड्रॉयड का उपयोग कर सकते हैं:। DrawableStart पाठ के शुरू में एक drawable जगह से जोड़कर देखते हैं"

लेकिन यह व्यवहार मैं नहीं देखता हूं। विशेषता काम क्यों नहीं कर रहा है?

+0

डॉक्स का कहना है कि इस एपीआई 17 – speedynomads

उत्तर

1

कारण क्योंकि drawableStart तरह का एक यौगिक लेआउट यानी छवि देख सकते हैं और TextView सब एक 'बटन' में लिपटे में बटन बनाता है ...

तो क्या आप देख रहे हैं कि imageView सामने रखा गया है है टेक्स्टव्यू के .. हालांकि टेक्स्टव्यू में अभी भी इसके डिफ़ॉल्ट लेआउट एट्रिब्यूट्स सेट हैं ताकि यह इसके लिए छोड़ी गई जगह में केंद्रित हो सके, इसलिए अंतराल (पाठ की शुरुआत में छवि डालने के द्वारा छोड़ी गई जगह में केंद्रित ध्यान दें)

इसलिए आपको मूल रूप से बटन के लिए गुरुत्वाकर्षण विशेषता को ओवरराइड करने की आवश्यकता है -

android:gravity="center_vertical|center_horizontal|left"

नोटिस नीचे देखें कि आप केवल बटन 1 लेआउट से लिपटे अन्य बेमानी है ... यानी RelativeLayout के लिए भी अपने आप ही एक LinearLayout हो सकता है की जरूरत है, क्योंकि आप केवल लेआउट में एक दृश्य है!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:drawableStart="@drawable/ic_launcher" 
     android:gravity="center_vertical|center_horizontal|left" 
     android:text="@string/app_name" /> 

</RelativeLayout> 
+2

इस में जोड़ा गया के अनुसार हालांकि पाठ और आइकन को केंद्रित नहीं करता है। – ZaBlanc

6

प्रारंभ और अंत के साथ बहुत सी गलतफहमी।
प्रारंभ और समाप्ति लेआउट एक्सएमएल वैकल्पिक छोड़ दिया करने के लिए और सही लेआउट दिशा (लीटर या RTL) मैच के लिए कर रहे हैं।

तो, जब प्रलेखन का कहना है:

"drawable टेक्स्ट की शुरुआत करने के लिए तैयार हो।"

आप अवश्य पढ़ें:

" drawable दृश्य की शुरुआत करने के लिए तैयार हो लेआउट दिशा "

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