6

ConstraintLayout में दिशानिर्देश आरटीएल का समर्थन करते हैं? मैं एक View बना रहा हूं जिसमें एक प्रोफ़ाइल तस्वीर और उपयोगकर्ता जानकारी है। मैं चाहता हूं कि तस्वीर चौड़ाई का 30% ले ले, जबकि उपयोगकर्ता नाम और विवरण 70% लेते हैं। क्या दिशानिर्देशों के लिए यह वैध उपयोग केस है? मुझे अन्य कार्यान्वयन के बारे में पता है लेकिन मैं सोच रहा था कि यहां दिशानिर्देशों का उपयोग किया जा सकता है या नहीं। समस्या का सामना करना पड़ रहा रहा है कि दिशानिर्देश बनी हुई है उस पर स्थिति है में है छोड़ दिया एक RTL भाषाConstraintLayout समर्थन में दिशानिर्देश आरटीएल

screenshot

यहाँ करने के लिए उपकरणों भाषा बदलने के बाद एक्सएमएल है:

<?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_width="match_parent" 
    android:layout_height="match_parent"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="80dp" 
     android:layout_height="80dp" 
     android:layout_marginStart="16dp" 
     android:layout_marginTop="16dp" 
     android:background="@color/colorPrimary" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="24sp" 
     tools:text="Full Name" 
     app:layout_constraintTop_toTopOf="@+id/imageView" 
     app:layout_constraintStart_toEndOf="@+id/guideline2" /> 

    <TextView 
     android:id="@+id/textView6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="14sp" 
     tools:text="Android Developer" 
     app:layout_constraintBottom_toBottomOf="@+id/imageView" 
     app:layout_constraintStart_toEndOf="@+id/guideline2" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/guideline2" 
     android:orientation="vertical" 
     app:layout_constraintGuide_percent="0.30" /> 


</android.support.constraint.ConstraintLayout> 

उत्तर

6

ऐसा लगता है कि एंड्रॉइड टीम ने इस मुद्दे को याद किया।

प्रतिशत केवल बाईं ओर से गणना की जाती है।

तो RTL समर्थन करने के लिए आप में मूल्यों/dimens.xml एक निरंतर घोषणा कर सकते हैं, उदाहरण के लिए:

<resources> 
    <item name="my_percent" format="float" type="dimen">0.3</item> 
</resources> 

और इसकी values-ldrtl/dimens.xml100-mypercent में फ़ाइल के साथ इस मान को ओवरराइड।

<resources> 
    <item name="my_percent" format="float" type="dimen">0.7</item> 
</resources> 

यह प्रयोग करें:

<android.support.constraint.Guideline 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/guideline2" 
    android:orientation="vertical" 
    app:layout_constraintGuide_percent="@dimen/my_percent" /> 
  • आप RTL के लिए एक पूर्ण लेआउट संस्करण को फिर से लिखने के लिए पसंद करते हैं, तो आप की घोषणा आयामों को छोड़ सकते हैं, और RTL संस्करण के लिए layout-ldrtl/ निर्देशिका का उपयोग करें।
+1

धन्यवाद, मैंने अभी समस्या ट्रैकर की जांच की है और पाया है कि यह रिपोर्ट किया गया है: https://issuetracker.google.com/issues/38101983 – Ibrahim

+0

धन्यवाद, मैं इसके बारे में भी नजर रखूंगा। – auval

+2

इस मुद्दे को आधिकारिक तौर पर कॉन्स्ट्रेनटआउट 1.1.0 बीटा 3 https://androidstudio.googleblog.com/2017/10/constraintlayout-110-beta-3-is-now.html – Ibrahim

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