यह दृश्य लंबवत विवश नहीं है। जब तक आप एक ऊर्ध्वाधर बाधा नहीं जोड़ते हैं तब तक यह बाईं ओर कूद जाएगा


99

यहां छवि विवरण दर्ज करेंएंड्रॉइड स्टूडियो 2.2 में नया लेआउट संपादक एडिटटेक्स्ट और बटन जैसे विचारों पर यह त्रुटि दिखाता रहता है। कृपया मदद करें। इसके अलावा, नए बाधा लेआउट के साथ ऑनबोर्डिंग में मदद करने वाले किसी भी लिंक की सराहना की जाएगी।

कोड:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    android:id="@+id/activity_main"
    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"
    tools:context="com.set.email.MainActivity"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="81dp">

    <TextView
        android:text="To:"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="7dp"
        tools:layout_editor_absoluteY="4dp"
        android:id="@+id/textTo"/>

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:ems="10"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="24dp"
        android:id="@+id/editTo"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"/>

    <EditText
        android:layout_width="384dp"
        android:layout_height="42dp"
        android:inputType="textPersonName"
        android:ems="10"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="94dp"
        android:id="@+id/editSubject"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"/>

    <EditText
        android:layout_width="384dp"
        android:layout_height="273dp"
        android:inputType="textPersonName"
        android:ems="10"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="179dp"
        android:id="@+id/editMessage"
        app:layout_constraintLeft_toLeftOf="@+id/activity_main"
        tools:layout_constraintLeft_creator="50"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"/>

    <Button
        android:text="Send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="140dp"
        tools:layout_editor_absoluteY="454dp"
        android:id="@+id/btnSend"
        app:layout_constraintLeft_toLeftOf="@+id/editMessage"
        tools:layout_constraintLeft_creator="0"
        app:layout_constraintRight_toRightOf="@+id/activity_main"
        android:layout_marginEnd="16dp"
        tools:layout_constraintRight_creator="0"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"/>


</android.support.constraint.ConstraintLayout>

क्या त्रुटि? कृपया अपनी वास्तविक समस्या का वर्णन करें। यह लगभग पर्याप्त विवरण नहीं है।
लेक्सी

क्या आप अपना xml कोड साझा कर सकते हैं ??
जानकी गढ़िया

जब बाधा लेआउट को पूरा करना समाप्त हो जाए, तो सभी लापता बाधाओं को स्वचालित रूप से जोड़ने के लिए बटन पर क्लिक करें।
एलेक्स कोहेन

1
बटन? क्या आपका मतलब लाल लिंट बल्ब से है? अपने आप ही लापता बाधाओं को जोड़ने के लिए कोई विकल्प नहीं दिखा रहा है।
onexf

जवाबों:


81

बाधा लेआउट का उद्देश्य लेआउट पदानुक्रम को कम करना है और लेआउट के प्रदर्शन में सुधार करता है (तकनीकी रूप से, आपको अलग-अलग स्क्रीन आकारों के लिए परिवर्तन नहीं करना है, कोई अतिव्यापी नहीं है, मोबाइल पर आकर्षण के साथ-साथ समान बाधाओं के साथ एक टैब की तरह काम करता है)। जब आप नए लेआउट संपादक का उपयोग कर रहे हैं तो आपको उपरोक्त त्रुटि से छुटकारा मिलेगा।

यहां छवि विवरण दर्ज करें

छोटे वृत्त पर क्लिक करें और इसे बाईं ओर तब तक खींचें जब तक कि वृत्त हरा न हो जाए, एक बायाँ अवरोध जोड़ने के लिए (x संख्या दें, x dp कहें) इसे अन्य पक्षों के साथ दोहराएं और नीचे का अवरोध खाली छोड़ दें यदि आपके पास नीचे एक और दृश्य है। । यहां छवि विवरण दर्ज करें

संपादित करें: डेवलपर्स साइट के अनुसार, हर दृश्य में बाधाओं को जोड़ने के बजाय जैसा कि आप उन्हें लेआउट में रखते हैं, आप प्रत्येक दृश्य को उन स्थितियों में स्थानांतरित कर सकते हैं जिन्हें आप चाहते हैं, और फिर स्वचालित रूप से बाधाओं को बनाने के लिए बाधाएं क्लिक करें। अधिक यहाँ


मैंने कंट्रोवर्शियल लेआउट में सिर्फ इमेज इमेज को जोड़ा है, लेकिन जब मैं ऐप चलाता हूं तो यह प्रदर्शित नहीं होता है। क्या आप मेरी मदद कर सकते हैं ?
प्रियंकाचौहान

79

Android Studio v3 और ऊपर से, Infer Constraint को ड्रॉपडाउन से हटा दिया गया था।

डिज़ाइन पूर्वावलोकन के ऊपर टूलबार मेनू में जादू की छड़ी आइकन का उपयोग करें ; वहाँ " बांझ बाधाओं " बटन है। इस बटन पर क्लिक करें, यह स्वचालित रूप से टेक्स्ट फ़ील्ड में कुछ लाइनें जोड़ देगा और लाल रेखा हटा दी जाएगी।

यहां छवि विवरण दर्ज करें


1
मेरे मामले में, यह केवल एक अनदेखी बाधा जोड़ता है, लेकिन यह समस्या का समाधान नहीं करता है
mrroot5

यह समाधान शीर्ष से आसान है। लेकिन केवल एएस v3 और बाद के लिए काम करता है।
योहन एआई

42

बस इस कोड को उन सभी घटकों पर कॉपी करें जिन्हें आप खींचेंगे।

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"

उदाहरण:

<TextView
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    android:text="To:"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:layout_editor_absoluteX="7dp"
    tools:layout_editor_absoluteY="4dp"
    android:id="@+id/textTo"/>

5
पर क्यों? क्या आप इसका विवरण बता सकते हैं?
प्रथमेश अधिक

22

डिजाइन पर जाएं, अपने विजेट, बाधा लेआउट >> इनफेर बाधाओं पर राइट क्लिक करें। आप देख सकते हैं कि आपके पाठ में कुछ कोड अपने आप जुड़ गए हैं।


हाँ बाधाएं गतिविधि में निर्दिष्ट चूक मूल्यों का उपयोग करती हैं। xml फ़ाइल
रोहन गाला


4

Constraintsअभी भी इनफ़र्मेशन आपको त्रुटि देता है, बस इस कोड का उपयोग करें:

app:layout_constraintBottom_toBottomOf="parent"

2

आपको EditTextलेआउट के किनारे से और न केवल अन्य विजेट को खींचने की आवश्यकता है । आप केवल उस बाधा बिंदु को खींचकर बाधाएं भी जोड़ सकते हैं, जो निर्दिष्ट के रूप में बाधाओं को जोड़ने के लिए स्क्रीन के किनारे पर विजेट को घेरता है।

संशोधित कोड कुछ इस तरह दिखाई देगा:

    app:layout_constraintLeft_toLeftOf="@+id/router_text"
    app:layout_constraintTop_toTopOf="@+id/activity_main"
    android:layout_marginTop="320dp"
    app:layout_constraintBottom_toBottomOf="@+id/activity_main"
    android:layout_marginBottom="16dp"
    app:layout_constraintVertical_bias="0.29" 

1

XML लेआउट टेक्स्ट पर जाएं जहां विजेट (बटन या अन्य दृश्य) त्रुटि को इंगित करता है, वहां कर्सर को केंद्रित करें और alt+ दबाएं enterऔर लापता बाधाओं का चयन करें।


यह चेतावनी संदेश भी देता है कि हार्डकोड कोड "TextView", @string संसाधन का उपयोग करना चाहिए
मोहम्मद हेयड़ी

1

उदाहरण के लिए मेरे पास यह है

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

इस तरह RelativeLayout लेआउट का उपयोग करें

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

1

बस डिज़ाइन दृश्य पर स्विच करें, और संबंधित विजेट का पता लगाएं। विजेट की सीमा पर डॉट्स में से एक को पकड़ो और इसे स्क्रीन के एक उपयुक्त किनारे (या किसी अन्य विजेट पर डॉट) में शामिल करें।

उदाहरण के लिए, यदि विजेट एक टूलबार है, तो बस ऊपर-सबसे डॉट को पकड़ें और इसे फोन स्क्रीन के शीर्ष-सबसे किनारे तक जोड़ दें जैसा कि छवि में दिखाया गया है।

डिजाइन देखें



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