android - अपने माता-पिता के केंद्र में LinearLayout को कैसे संरेखित करें?




android-layout android-ui (8)

मैंने SO पर कई समान प्रश्नों को देखा है, लेकिन कुछ भी मदद नहीं करता है। मेरे पास अलग-अलग नेस्टेड लेआउट का पदानुक्रम है, सभी में android:layout_width="fill_parent" , और आंतरिक-लेआउट में android:layout_width="wrap_content - मुझे इसे केंद्र (क्षैतिज) पर संरेखित करने की आवश्यकता है। मैं यह कैसे करूं ?

अपडेट करें :: मुझे समस्या का कारण मिला है - अगर मैंने android:layout_width="fill_parent" साथ रिलेटिव android:layout_width="fill_parent" में आंतरिक android:layout_width="fill_parent" , यह अभी भी इसकी सामग्री को लपेटता है। हालांकि, TableRow वास्तव में स्क्रीन भर रहा है।

<?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" >
    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
            <TableRow >
            <LinearLayout 
            android:orientation="horizontal"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
                    <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:text="1"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                     <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:text="2"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
             </LinearLayout>
           </TableRow>
        </TableLayout>
    </FrameLayout>
</LinearLayout>

@jksschneider स्पष्टीकरण लगभग सही है। सुनिश्चित करें कि आपने पैरेंट लेआउट में कोई gravity सेट नहीं किया है, और फिर अपने दृश्य या लेआउट में layout_gravity="center" सेट करें।


ImageView या अन्य लोगों के लिए जो लेआउट-गुरुत्वाकर्षण या गुरुत्वाकर्षण का उपयोग नहीं करते हैं: android:layout_centerInParent="true" बच्चे में android:layout_centerInParent="true" (मेरे पास एक छवि के रूप में एक छवि android:layout_centerInParent="true" साथ एक सापेक्ष लेआउट था)।


कस्टम अधिसूचना डिजाइन करते समय मुझे एक ही स्थिति का सामना करना पड़ा है। मैंने निम्नलिखित विशेषता के साथ सत्य के साथ प्रयास किया है।

 android:layout_centerInParent.

कृपया इसे अपने रैखिक लेआउट में आज़माएं

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

यह मेरे लिए काम किया .. खाली दृश्य जोड़ना ..

<LinearLayout
       android:layout_width="match_parent"
        android:layout_height="wrap_content"
       android:layout_gravity="center_horizontal"
        android:orientation="horizontal"
         >
<View
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1"
            />  
     <com.google.android.gms.ads.AdView

         android:id="@+id/adView"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

         android:layout_gravity="center_horizontal"
         ads:adSize="BANNER"
         ads:adUnitId="@string/banner_ad_unit_id" >

    </com.google.android.gms.ads.AdView>
    <View
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1"
            />  
    </LinearLayout>

यह मेरे लिए काम किया।

<LinearLayout>
.
.
.
android:gravity="center"
.
.>

<TextView
android:layout_gravity = "center"
/>
<Button
android:layout_gravity="center"
/>

</LinearLayout>

इसलिए आप रैखिक लेआउट को अपने केंद्र में अपनी सभी सामग्री (टेक्स्ट व्यू और बटन) रखने के लिए डिज़ाइन कर रहे हैं और फिर टेक्स्ट व्यू और बटन को रैखिक लेआउट के केंद्र के सापेक्ष रखा गया है


समस्या यह है कि रूट (मुख्य तत्व जो आप अन्य तत्वों को संग्रहीत करते हैं) गुरुत्वाकर्षण सेट नहीं है। यदि आप इसे केंद्र में बदलते हैं तो अन्य तत्वों के गुरुत्वाकर्षण को ठीक काम करना चाहिए।


<TableRow android:gravity="center_horizontal"> प्रयास करें <TableRow android:gravity="center_horizontal"> यह <TableRow android:gravity="center_horizontal"> के भीतर आंतरिक लीनियरआउट को केंद्रित करेगा।







android-ui