रिलेटिवलैट सेंटर वर्टिकल


88

मैं एक सूची पंक्ति लेआउट बनाना चाहता हूं। इस लेआउट में सबसे बायीं ओर एक चित्रपट है, चित्रपट के ठीक बगल में एक टेक्स्टव्यू है, और सबसे दाएं में एक चित्रपट है। मैं चाहता हूं कि वे सभी केंद्र लंबवत हों।

<RelativeLayout
    android:layout_width="fill_parent" android:layout_height="100dp"
    android:gravity="center_vertical"
    >
    <ImageView 
        android:id="@+id/icon"
        android:layout_width="50dp" android:layout_height="50dp"
        android:layout_gravity="center_vertical" />
    <TextView 
        android:id="@+id/func_text" android:layout_toRightOf="@id/icon"
        android:layout_width="wrap_content" android:layout_height="100dp"
        android:layout_gravity="center_vertical" />
    <ImageView 
        android:layout_width="50dp" android:layout_height="50dp"
        android:layout_alignParentRight="true"
        android:layout_gravity="center_vertical"
        android:src="@drawable/arrow" />
</RelativeLayout>

मैंने android:layout_centerVertical="true"टेक्स्टव्यू में जोड़ने की भी कोशिश की , लेकिन परिणाम दो इमेजव्यू के साथ टेक्स्टव्यू एलाइन बॉटम है। मैंने एंड्रॉइड 4.2 एमुलेटर में यह कोशिश की। कोई भी इस बारे में मेरी मदद कर सकता है?

जवाबों:


81

मैंने आपका लेआउट संपादित कर दिया है। अब इस कोड को जांचें।

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#33B5E5"
android:padding="5dp" >

<ImageView
    android:id="@+id/icon"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentLeft="true"
    android:layout_centerInParent="true"
    android:background="@android:drawable/ic_lock_lock" />

<TextView
    android:id="@+id/func_text"
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:layout_gravity="center_vertical"
    android:layout_toRightOf="@+id/icon"
    android:gravity="center"
    android:padding="5dp"
    android:text="This is my test string............"
    android:textColor="#FFFFFF" />

<ImageView
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentRight="true"
    android:layout_centerInParent="true"
    android:layout_gravity="center_vertical"
    android:src="@android:drawable/ic_media_next" />

</RelativeLayout>

186

उपयोग

 android:layout_centerVertical="true"

31
यह सही उत्तर होना चाहिए, क्योंकि RelativeLayout का लेआउट_ग्रेविटी विशेषता नहीं है।
माइटीसेल

"एक रेखीय लेआउट में अमान्य परम"
Acauã Pitta

22

यदि दृश्य की ऊँचाई / चौड़ाई = wra_content

उपयोग:

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

यदि देखें की ऊंचाई / चौड़ाई = match_parent

उपयोग:

android:gravity="center_vertical|center_horizontal"

8

किसी एक आइकन पर टेक्स्ट व्यू के ऊपर और नीचे को संरेखित करने का प्रयास करें, इससे टेक्स्ट व्यू को समान ऊँचाई साझा की जा सकेगी, फिर टेक्स्ट व्यू सेंटर के अंदर टेक्स्ट को लंबवत बनाने के लिए सेट gravityकरें center_vertical

<TextView 
        android:id="@+id/func_text" android:layout_toRightOf="@id/icon"
        android:layout_alignTop="@id/icon" android:layout_alignBottom="@id/icon"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:gravity="center_vertical" />

8

मेरे लिए, मुझे हटाना पड़ा

<item name="android:gravity">center_vertical</item>

से RelativeLayout , इसलिए बच्चों के विन्यास काम करेगा:

<item name="android:layout_centerVertical">true</item>

4

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rell_main_bg"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#096d74" > 

<ImageView 
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/img_logo_large"
    android:contentDescription="@null" />

</RelativeLayout>

1

यह शायद इसलिए क्योंकि टेक्स्टव्यू बहुत अधिक है। एंड्रॉइड बदलें: wra_content या उपयोग के लिए टेक्स्टव्यू का लेआउट_हाइट

android:gravity="center_vertical"

1

दोनों को जोड़ना android:layout_centerInParentऔर android:layout_centerVerticalमेरे लिए ImageViewऊर्ध्वाधर और क्षैतिज दोनों को केंद्र में रखना:

<ImageView
    ..
    android:layout_centerInParent="true"
    android:layout_centerVertical="true"
    />

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

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_centerInParent="true"
                android:layout_gravity="center_vertical"
                android:layout_marginTop="@dimen/main_spacing_extra_big"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"

                    android:fontFamily="@font/noto_kufi_regular"
                    android:text="@string/renew_license_municipality"
                    android:textColor="@color/sixth_text"
                    android:textSize="@dimen/main_text" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:fontFamily="@font/noto_kufi_regular"
                    android:text="@{RenewLicenseBasicInfoFragmentVM.tvMunicipality}"
                    android:textColor="@color/sixth_text"
                    android:textSize="@dimen/main_text" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_centerInParent="true"
                android:layout_gravity="center_vertical"
                android:layout_marginTop="@dimen/main_spacing_extra_big"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="end"
                    android:fontFamily="@font/noto_kufi_regular"
                    android:text="@string/renew_license_license_number"
                    android:textColor="@color/sixth_text"
                    android:textSize="@dimen/main_text" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="end"
                    android:fontFamily="@font/noto_kufi_regular"
                    android:text="@{RenewLicenseBasicInfoFragmentVM.tvLicenseNum}"
                    android:textColor="@color/sixth_text"
                    android:textSize="@dimen/main_text" />
            </LinearLayout>`enter code here`

        </RelativeLayout>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.