2017-04-07 9 views
7

से मेल खाने के लिए पंक्ति में सभी दृश्यों की ऊंचाई सेट करें, मैं उनमें से सबसे ऊंचे से मेल खाने के लिए 2 साइड-बाय-साइड दृश्यों की ऊंचाई सेट करने के लिए एक कॉन्स्ट्रेनटआउट (संस्करण 1.0.2) का उपयोग करने की कोशिश कर रहा हूं । यह रीसाइक्लर व्यू के लिए व्यूहोल्डर के रूप में कार्य करता है, जहां प्रत्येक टेक्स्ट व्यू को पाठ की मनमाने ढंग से लंबाई मिलती है ...कंटेंट लेटआउट: सबसे लंबे समय तक

यदि मैं प्रत्येक को wrap_content पर सेट करता हूं, तो छोटा छोटा हो जाएगा। यदि मैं 0 डीपी (match_contraints) दोनों को सेट करता हूं, तो दोनों 0 ऊंचाई ऊपर समाप्त होते हैं।

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    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_marginLeft="2dp" 
    android:layout_marginRight="2dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <TextView 
     android:id="@+id/id1" 
     android:layout_width="60dp" 
     android:layout_height="0dp" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintEnd_toStartOf="@+id/id2"/> 

    <TextView 
     android:id="@+id/id2" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintStart_toEndOf="@+id/id1" 
     app:layout_constraintEnd_toEndOf="parent"/> 

</android.support.constraint.ConstraintLayout> 

मुझे लगता है यह एक बग है, "0dp" की तुलना में वास्तविक 0 डी पी match_parent की तरह अधिक कार्य करना चाहिए के रूप में:

यहाँ सेटअप है।

आईओएस पर, समकक्ष ऑटो लेआउट नियम (माता-पिता के ऊपर और नीचे मिलान करने के लिए दृश्यों की ऊंचाइयों को सेट करने के लिए) अपेक्षित परिणाम उत्पन्न करते हैं।

बेशक इस LinearLayout का उपयोग कर बहुत सरल है, लेकिन इस लेआउट एक बड़ा लेआउट में भूमिका निभाता है, और मैं दृश्य पदानुक्रम ट्रिम करने के लिए ...

उत्तर

2

उत्तर, मामले में किसी को भी भविष्य में जवाब के लिए बाहर लग रही है।

ConstraintLayoutv1.1 में Barrier शुरू की ऐसे ही एक सवाल

ऊपर उल्लेख कार्यक्षमता एक्सएमएल नीचे का उपयोग कर प्राप्त किया जा सकता में ओपी ने पूछा कार्यक्षमता प्राप्त करने के लिए:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    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_marginLeft="2dp" 
    android:layout_marginRight="2dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <TextView 
     android:id="@+id/id1" 
     android:layout_width="60dp" 
     android:layout_height="0dp" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintEnd_toStartOf="@+id/id2" 
     app:layout_constraintBottom_toBottomOf="@+id/barrier" 
     android:text="@string/id1_text" /> 

    <TextView 
     android:id="@+id/id2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintStart_toEndOf="@+id/id1" 
     app:layout_constraintEnd_toEndOf="parent" 
     android:text="@string/id2_text" /> 

    <android.support.constraint.Barrier 
     android:id="@+id/barrier" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:barrierDirection="bottom" 
     app:constraint_referenced_ids="id1,id2" /> 

</android.support.constraint.ConstraintLayout> 
+1

आपको अपने स्रोत कोड भाग को सही ढंग से प्रारूपित करने के लिए Ctrl + K या Cmd + K का उपयोग करना चाहिए। –

1

यह आपकी मदद कर सकते करना चाहते हैं।

<android.support.constraint.ConstraintLayout 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin"> 

    <TextView 
     android:id="@+id/tv_1" 
     android:layout_width="150dp" 
     android:layout_height="match_parent" 
     android:layout_marginEnd="8dp" 
     android:layout_marginRight="8dp" 
     android:background="@color/colorAccent" 
     android:gravity="center" 
     android:padding="@dimen/activity_vertical_margin" 
     android:text="sjdjhshdjhdjhsdgfjhgsdjfgjsdgfjsdgfhgdsjhfghs" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toLeftOf="@+id/tv_2" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <TextView 
     android:id="@+id/tv_2" 
     android:layout_width="150dp" 
     android:layout_height="match_parent" 
     android:background="@color/colorPrimary" 
     android:gravity="center" 
     android:padding="@dimen/activity_vertical_margin" 
     android:text="sjdjhsjhd" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintLeft_toRightOf="@+id/tv_1" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

</android.support.constraint.ConstraintLayout> 

enter image description here

enter image description here

+0

काम नहीं करता । शायद आपका ऊर्ध्वाधर पैडिंग समस्या को छुपाता है। – jazzgil

+0

वैसे भी, match_parent समर्थित नहीं है, और 0 डीपी, AFAIK के रूप में माना जाता है। – jazzgil

+0

मैंने देखा कि, निश्चित चौड़ाई (60 डीपी) और match_parent ऊंचाई के साथ यह काम करेगा। – CodeCameo

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