2011-12-09 8 views
26
<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Street" 
      android:layout_gravity="left"/> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="456546546" 
      android:layout_gravity="right" /> 

    </LinearLayout> 

</LinearLayout> 

में दो कॉलम बनाना, मैं दो कॉलम के साथ एक लेआउट बनाने की कोशिश कर रहा हूं, बाईं तरफ एक टेक्स्टव्यू और दूसरी तरफ दाईं ओर। हालांकि, टेक्स्टव्यू अभी भी बाईं तरफ हैं।एंड्रॉइड: लाइनरलेआउट

उत्तर

74

आपको android:layout_weight विशेषता का उपयोग करना चाहिए। यहाँ एक उदाहरण है:

<LinearLayout 
    android:id="@+id/linearLayout2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:text="Street" 
     android:layout_gravity="left" 
     android:background="#88FF0000"/> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:text="456546546" 
     android:layout_gravity="right" 
     android:background="#8800FF00"/> 

</LinearLayout> 

enter image description here

+1

हाँ, यह रूप में अच्छी तरह से काम करता है; शायद आपको बेहतर काम करता है अगर आपको बाईं ओर दिए गए टेक्स्ट और दाईं ओर टेक्स्ट की बजाय पूर्ण कॉलम चाहिए। –

1

ऐसा करने पर तालिका लेआउट आज़माएं। ग्राफिकल लेआउट पर ड्रैग टेबल लेआउट सेल में आइटम डाल दिया।

4

हाँ, यह एक भ्रामक है। हालांकि LinearLayout की चौड़ाई fill_parent पर सेट है, फिर भी यह केवल न्यूनतम चौड़ाई आवश्यक लेता है। आप सही करने के लिए अपने गुरुत्वाकर्षण fill_parent और उसके बाद के लिए 2 TextView निर्धारित करने की आवश्यकता:

<LinearLayout 
    android:id="@+id/linearLayout2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Street"/> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="456546546" 
     android:gravity="right" /> 

</LinearLayout> 
+0

यह "वजन" निर्दिष्ट करने से थोड़ा बेहतर अनुकूलित करता है। – csi

3

यू प्रत्येक कॉलम में कई पंक्तियां चाहते हैं यू Table Layout

3

उपयोग कर सकते हैं मुझे आशा है कि यह आपके लिए उपयोगी साबित होगा।

इस संहिता का प्रयास करें ..

<LinearLayout 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" 
    android:orientation="horizontal"> 


    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:background="#00FF00" 
     android:paddingRight="90dp" 
     android:orientation="vertical" > 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b1" 
      android:text="Button 1"/> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#FF00FF" 
     android:orientation="vertical" >  

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b2" 
      android:text="Button 2"/> 

    </LinearLayout> 

</LinearLayout> 
2

और आप बटन के बीच एक अंतर की जरूरत है:

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

    <Button 

     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.95" 
     android:text="Via SMS" /> 

    <View 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.05" /> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.95" 
     android:text="Diaporama" /> 
</LinearLayout> 
0

केवल आपके स्तंभों के लिए दो ऊर्ध्वाधर LinearLayouts होने के साथ एक संभावित मुद्दा यह है कि कुछ भी नहीं सुनिश्चित करता है पंक्तियों जाएगा पंक्ति ऊंचाई चरम होने पर लाइन अप करें। TableLayout इसके लिए सबसे अच्छा है, और आपको उपलब्ध स्थान को भरने के लिए स्तंभ कैसे कम हो जाते हैं या बढ़ते हैं, इस पर नियंत्रण का एक समूह भी प्रदान करता है।

@ संतोष-शेट्गीगर पोस्ट के बाद से लिंक बदल गया है।
गाइड: https://developer.android.com/guide/topics/ui/layout/grid.html
संदर्भ: http://developer.android.com/reference/android/widget/TableLayout.html

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