android - एंड्रॉइड: आधा स्क्रीन में विभाजित 2 रिश्तेदार लेआउट




android-layout layout (4)

अब आप आसानी से PercentRelativeLayout का उपयोग कर कर सकते हैं

<android.support.percent.PercentRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context=".MainActivity">


<Button
    android:id="@+id/button"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:text="Button"
    app:layout_widthPercent="50%"/>

<Button
    android:id="@+id/button2"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@id/button"
    android:text="Button 2"
    app:layout_widthPercent="50%"/>
</android.support.percent.PercentRelativeLayout>

ग्रेडल निर्भरता जोड़ने के लिए मत भूलना

dependencies {
     compile 'com.android.support:percent:25.3.1'
}

जिथब में कोड

अद्यतन करें

एपीआई स्तर 26.0.0 के बाद प्रतिशत RelativeLayout बहिष्कृत है

मैंने क्षैतिज रूप से गठबंधन और आधा स्क्रीन में विभाजित 2 रिलेटिव लेआउट को आकर्षित करने के लिए कई बार कोशिश की।

मैं पेंट के साथ छवि को थोड़ा बेहतर समझाने के लिए डिजाइन करता हूं जिसका अर्थ है।

कोई उपाय?


आप क्षैतिज अभिविन्यास के साथ एक लाइनरलाउट के अंदर इन 2 रिलेटिव लेआउट्स डाल सकते हैं, फिर रिलेटिव लेआउट दोनों के लिए weight उपयोग करें। यह LinearLayout को 2 बराबर भागों में विभाजित करेगा।

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:baselineAligned="false">
    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">
   </RelativeLayout>
   <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">
   </RelativeLayout>
</LinearLayout>

मैं आपके ड्राइंग में 4 relativelayouts देखते हैं ...?

यदि आपका मतलब है कि बीच में दोनों को एक लाइनरलाउट (क्षैतिज अभिविन्यास) में डाल दिया गया है, तो उन सभी को match_parent की चौड़ाई है और दोनों रिश्तेदार लेआउट को 1 का वजन दें


लाइनरलाइट का उपयोग किए बिना एक ही कार्य को पूरा करने का एक और तरीका माता-पिता के लेआउट के बीच में एक केंद्र-गठबंधन "शिम" डालना है, फिर अन्य तत्वों को संरेखित करना है। यदि आप अर्ध-चौड़ाई तत्व की चौड़ाई को match_parent पर सेट करते हैं, लेकिन दोनों बाएं और दाएं किनारे को संरेखित करते हैं, तो वे फिट होने के लिए खुद को कम कर देंगे।

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.EqualWidthExample" >

    <!-- An invisible view aligned to the center of the parent. Allows other
    views to be arranged on either side -->
    <View 
        android:id="@+id/centerShim"
        android:layout_height="match_parent"
        android:layout_width="0dp"
        android:visibility="invisible"
        android:layout_centerHorizontal="true"/>

    <!--Set width to match_parent sets maximum width. alignParentLeft aligns 
    the left edge of this view with the left edge of its parent. toLeftOf 
    sets the right edge of this view to align with the left edge of the 
    given view. The result of all three settings is that this view will 
    always take up exactly half of the width of its parent, however wide 
    that may be. -->
    <Button
        android:id="@+id/btLeft"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/centerShim"
        android:text="Left Button" />

    <!--Same deal, but on the right -->
    <Button
        android:id="@+id/btRight"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@+id/centerShim"
        android:layout_below="@+id/tvLeft"
        android:text="Right Button" />
</RelativeLayout>




relativelayout