Nowy edytor układów w Android Studio 2.2 nadal wyświetla ten błąd w widokach, takich jak EditText i Buttons. uprzejmie pomoc. również wszelkie linki pomagające we wdrożeniu nowego układu ograniczeń będą mile widziane.
kod:
<?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>
Odpowiedzi:
Układ ograniczeń ma na celu zmniejszenie hierarchii układów i poprawę wydajności układów (technicznie rzecz biorąc, nie musisz wprowadzać zmian dla różnych rozmiarów ekranu, brak nakładania się, działa jak urok na telefonie komórkowym, a także na karcie z tymi samymi ograniczeniami). pozbywasz się powyższego błędu, gdy używasz nowego edytora układu.
Kliknij małe kółko i przeciągnij je w lewo, aż zmieni kolor na zielony, aby dodać lewe ograniczenie (podaj liczbę, powiedzmy x dp. Powtórz to z pozostałymi stronami i pozostaw dolne ograniczenie puste, jeśli masz pod nim inny widok .
Edycja: zgodnie z witryną dla programistów, zamiast dodawać ograniczenia do każdego widoku podczas umieszczania ich w układzie, możesz przenieść każdy widok na żądane pozycje, a następnie kliknąć opcję Rozważ ograniczenia, aby automatycznie utworzyć ograniczenia. więcej tutaj
źródło
Od wersji Android Studio v3 i nowszych Infer Constraint został usunięty z listy rozwijanej.
Użyj ikony różdżki w menu paska narzędzi nad podglądem projektu; jest przycisk „ Infer Constraints ”. Kliknij ten przycisk, spowoduje to automatyczne dodanie niektórych linii w polu tekstowym, a czerwona linia zostanie usunięta.
źródło
Po prostu skopiuj ten kod do wszystkich komponentów, które będziesz przeciągać.
przykład:
źródło
Przejdź do projektu, kliknij prawym przyciskiem myszy na swoim widżecie, Układ ograniczeń >> Rozważ ograniczenia. Możesz zauważyć, że jakiś kod został automatycznie dodany do twojego tekstu.
źródło
źródło
Jeśli wnioskowanie
Constraints
nadal daje błąd, po prostu użyj tego kodu:źródło
Musisz przeciągnąć
EditText
z krawędzi układu, a nie tylko z drugiego widżetu. Możesz także dodać ograniczenia, po prostu przeciągając punkt ograniczenia otaczający widżet do krawędzi ekranu, aby dodać ograniczenia zgodnie z opisem.Zmodyfikowany kod będzie wyglądał podobnie do tego:
źródło
Przejdź do tekstu układu XML, w którym widżet (przycisk lub inny widok) wskazuje błąd, ustaw kursor w tym miejscu i naciśnij alt+ enteri wybierz brakujące atrybuty ograniczeń.
źródło
na przykład mam to
użyj układu RelativeLayout w ten sposób
źródło
Po prostu przełącz się do widoku projektu i zlokalizuj odpowiedni widżet. Chwyć jedną z kropek na granicy widżetu i połącz ją z odpowiednią krawędzią ekranu (lub kropką na innym widżecie).
Na przykład, jeśli widżet jest paskiem narzędzi, po prostu chwyć najwyższą kropkę i połącz ją z najwyższą krawędzią ekranu telefonu, jak pokazano na obrazku.
źródło
To mi bardzo pomaga
źródło
Trzeba zmienić
androidx.constraintlayout.widget.ConstraintLayout
naRelativeLayout
.źródło