2012-02-03 30 views
5

मुझे सरल बटनों का अजीब व्यवहार दिखाई देता है, जब उनका टेक्स्ट कई पंक्तियों पर विभाजित होता है। मेरे पास यह अधिक जटिल परिस्थिति में है, लेकिन सबसे सरल में भी ऐसा होता है।संरेखण रेखा के तहत मल्टीलाइन टेक्स्ट सिंक वाले बटन, इसे कैसे ठीक करें?

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

<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111" /> 
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111 222 333" /> 
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111 222 333 444 555 666" /> 
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111" /> 
</LinearLayout> 

परिणाम है:: इस लेआउट के साथ buttons not in a row

बटन पाठ के हर अगली पंक्ति के साथ नीचे और नीचे जाना। मैं उन्हें एक पंक्ति में चाहता हूँ। क्या यह एक एंड्रॉइड बग है और इसे कैसे ठीक किया जाए?

+3

यह एक बग नहीं है, बटन 'टेक्स्ट बेसलाइन अन्य बटनों के साथ गठबंधन है। 'LineelineLayout' के' झूठी 'पर' बेसलाइन हस्ताक्षर 'सेट करना इसे ठीक करेगा। – xmen

उत्तर

9

तरह का उपयोग इस प्रयास करें: हर बटन में लाइनों

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <Button 
      android:layout_width="100dip" 
      android:layout_height="70dip" 
      android:layout_gravity="center" 
      android:text="111" /> 

     <Button 
      android:layout_width="100dip" 
      android:layout_height="70dip" 
      android:layout_gravity="center" 
      android:text="111 222 333" /> 

     <Button 
      android:layout_width="100dip" 
      android:layout_height="70dip" 
      android:layout_gravity="center" 
      android:text="111 222 333 444 555 666" /> 

     <Button 
      android:layout_width="100dip" 
      android:layout_height="70dip" 
      android:layout_gravity="center" 
      android:text="111" /> 
    </LinearLayout> 

</LinearLayout> 
+3

+1। धन्यवाद! असल में एंड्रॉइड: बटन के लिए layout_gravity = "center" को लगता है, नेस्टेड गतिविधियों से कोई आवश्यकता नहीं है। मैं अन्य राय के लिए कुछ और घंटों का इंतजार करूंगा, लेकिन शायद आपके उत्तर को अंक मिलेगा। – ggurov

+0

एंड्रॉइड: गुरुत्वाकर्षण = "केंद्र" लेआउट प्रॉपर्टी के रूप में भी काम करता है, कुछ अन्य स्थितियों के साथ: <लीनियरलायआउट एंड्रॉइड: लेआउट_विड्थ = "wrap_content" एंड्रॉइड: लेआउट_हेइट = "wrap_content" एंड्रॉइड: गुरुत्वाकर्षण = "केंद्र"> – ggurov

+0

प्रत्येक समस्या में कई समस्याएं हैं समाधान ^^ –

0

बटन के स्थान पर इस

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:text="111" /> 
+0

मैं चाहता हूं कि ये बटन बराबर आकार के साथ हों। असल में मैं एंड्रॉइड का उपयोग करता हूं: layout_weight = "1" और एंड्रॉइड: layout_width = "0dip" मेरे असली प्रोग्राम में, लेकिन इससे मदद नहीं मिलती है। – ggurov

0

2 नीचे का प्रयोग करें, तो सभी बटन एक पंक्ति में आ जाएगा।

android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

आप इन बटनों चाहते हैं फैलाने के लिए पूरी चौड़ाई भी हर बटन

android:layout_weight="1" 
+0

मुझे पता है कि "wrap_content" क्या करता है, लेकिन मुझे समान आकार वाले बटन चाहिए। – ggurov

1

की तरह कुछ करने के लिए रेखा से नीचे जोड़ने है इस

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

<Button 
    android:id="@+id/btn1" 
    android:layout_width="100dip" 
    android:layout_height="70dip" 
    android:text="111" /> 

<Button 
    android:layout_toRightOf="@+id/btn1" 
    android:id="@+id/btn2" 
    android:layout_width="100dip" 
    android:layout_height="70dip" 
    android:text="111 222 333" /> 

<Button 
    android:layout_toRightOf="@+id/btn2" 
    android:id="@+id/btn3" 
    android:layout_width="100dip" 
    android:layout_height="70dip" 
    android:text="111 222 333 444 555 666" /> 

<Button 
      android:layout_toRightOf="@+id/btn3" 
    android:id="@+id/btn4" 
    android:layout_width="100dip" 
    android:layout_height="70dip" 
    android:text="111" /> 

</RelativeLayout> 
+0

मुझे उम्मीद है कि यह काम करेगा। मुझे कोशिश करने दो ..... –

+0

गड काम। यह ठीक है ........... –

+0

+1। यह काम करता है, लेकिन एंड्रॉइड: dmytrodanylyk समाधान से layout_gravity = "center" सरल है। – ggurov

2

सेट LinearLayout के android:baselineAlignedfalse

को
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="match_parent" 
android:baselineAligned="false"> 
+0

हाँ, यह भी काम करता है! – ggurov