2011-08-30 17 views
9

मैं एक कस्टम AlertDialog बनाने की कोशिश कर रहा हूं, और लेआउट में दो बटन हैं। हालांकि जब बटन लेआउट बहुत लंबा होता है तो यह केवल पहला शब्द दिखाता है। मैं पहले ही xml singleLine = "false" में सेट कर चुका हूं, लेकिन कुछ भी नहीं।बटन टेक्स्ट एकाधिक लाइनों के साथ नहीं

इसके अलावा मैंने बटन के लिए लाइनों की संख्या को इस मामले में सेट किया है, लेकिन जब टेक्स्ट लंबा नहीं होता है, तो बटन बड़ा रहता है, सामग्री को लपेटता नहीं है।

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

बटन में पाठ के नीचे दी गई छवि में "यह एक परीक्षण बटन" होना चाहिए, लेकिन यह पाठ को काटता है, और इसकी चौड़ाई को संशोधित किए बिना सामग्री को लपेटता नहीं है।

enter image description here

यहाँ इस लेआउट के एक्सएमएल है:

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

    <LinearLayout 
     android:id="@+id/dialogTitleLayout" 
     android:orientation="vertical" 
     android:background="@drawable/header" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <TextView 
      style="@style/DialogText.Title" 
      android:id="@+id/dialogTitle" 
      android:paddingBottom="5dp" 
      android:paddingTop="5dp" 
      android:paddingLeft="8dip" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 

    </LinearLayout> 

    <LinearLayout  
     android:id="@+id/dialogContentLayout" 
     android:orientation="vertical" 
     android:background="@drawable/center" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <TextView 
      style="@style/DialogText" 
      android:id="@+id/dialogContent" 
      android:layout_width="270dip" 
      android:layout_height="wrap_content" 
      android:paddingLeft="10dp" 
      android:paddingTop="10dp" /> 

<LinearLayout 
     android:id="@+id/buttonsLayout" 
     android:orientation="horizontal" 
     android:gravity="center_horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:paddingTop="10dp" >  
     <Button 
      android:id="@+id/neutralButton" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="@drawable/button" 
      android:textColor="#FFFFFF"   
      android:paddingTop="8dp" 
      android:paddingBottom="8dp"    
      android:layout_gravity="center_horizontal" 
      android:layout_marginRight="90dp" 
      android:layout_marginLeft="90dp" 
      android:layout_marginBottom="10dp" 
      android:singleLine="false" />  
     <Button 
      android:id="@+id/positiveButton" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/button" 
      android:textColor="#FFFFFF"    
      android:paddingTop="8dp" 
      android:paddingBottom="8dp" 
      android:paddingLeft="10dp" 
      android:layout_weight="1" 
      android:paddingRight="10dp" 
      android:layout_margin="10dp" 
      android:singleLine="false" />  
     <Button 
      android:id="@+id/negativeButton" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/button" 
     android:textColor="#FFFFFF"    
     android:paddingTop="8dp" 
     android:paddingBottom="8dp" 
     android:paddingLeft="10dp" 
     android:layout_weight="1" 
     android:paddingRight="10dp" 
     android:layout_margin="10dp" 
     android:singleLine="false" />  
    </LinearLayout> 
</LinearLayout> 
</LinearLayout> 

उत्तर

14

संपादित अपने बटन संपत्ति ..

<Button 
     android:id="@+id/neutralButton" 
     android:layout_width="wrap_content" 
     android:background="@drawable/button" 
     android:textColor="#FFFFFF"   
     android:textSize="10dp"     
     android:layout_gravity="center_horizontal" 
     android:singleLine="true" /> 
+0

क्यों सिंगललाइन = "सच" ?? मैं इसे बटन की टेक्स्ट लाइन तोड़ना चाहता हूं। – rogcg

+0

जब आप सिंगलाइन = "सत्य" सेट करते हैं तो यह केवल एक पंक्ति में पूरे पाठ को प्रदर्शित करता है और आप झूठी सेट करते हैं, यह विपरीत काम करता है। आपका बटन टेक्स्टटाइज़ बहुत लंबा हो सकता है और टेक्स्ट चौड़ाई टेक्स्ट के लिए छोटा है। वहां दो विकल्प थे जिन्हें आपको अपनी बटन की चौड़ाई को लपेटने की सामग्री की तरह बढ़ाने या पाठ आकार को दो छोटे सेट करने की आवश्यकता थी। –

+0

लेकिन, यदि टेक्स्ट का आकार बहुत लंबा है, तो भी इसे टेक्स्ट लाइन तोड़नी चाहिए, है ना ?? और बटन की चौड़ाई fill_parent है। – rogcg

3

यह शायद इसलिए है क्योंकि आप के लिए वजन संपत्ति का इस्तेमाल किया है

यहाँ यह कैसे लगता है कि का एक स्क्रीनशॉट है बटन।

android:layout_weight="1" 

बटन में वजन निकालें और बटन के लिए

android:layout_width="wrap_content" 

निर्धारित किया है। मुझे लगता है कि यह करना चाहिए।

कृपया मुझे बताएं कि यह काम करता है या नहीं।

+0

चौड़ाई wrap_content सेट करके, बटनों की समान चौड़ाई होती है। मैं इसे एक ही चौड़ाई रखना चाहता हूं। इस तरह, यह बटन को दूसरे बटन के बाद सबसे लंबे पाठ के साथ बनाता है, और दूसरे बटन के पाठ के अंतिम अक्षर को छिपाता है। मैं इसे क्षैतिज बनाने के बजाय बटन टेक्स्ट की रेखा तोड़ना चाहता हूं। वैसे भी Thx। – rogcg

+0

मुझे लगता है कि आपको एक फ्रेम वाला एक कस्टम व्यू बनाना होगा जिसमें बटन होगा और इसके ऊपर एक टेक्स्ट व्यू होगा। टेक्स्टव्यू में कुछ पैडिंग प्रदान करें ताकि यह बटन के किनारे को छू न सके। – Umesh

5

android:singleLine="true" मान्य नहीं है। इसके बजाए इसका उपयोग करें:

android:maxLines="1" 
संबंधित मुद्दे