Ten widok nie jest ograniczony

96

Pojawia się następujący błąd i używam Android Studio 2.2 Preview 3. Szukałem w Google, ale nie mogłem znaleźć żadnych zasobów.

Error: This view is not constrained, it only has design time positions, so it will jump to (0,0) unless you add constraints

wprowadź opis obrazu tutaj

<TextView
        android:layout_width="384dp"
        android:layout_height="207dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/calc_default_display"
        android:id="@+id/textView"
        android:background="#ffffff"
        android:layout_margin="0dp"
        android:gravity="bottom|end"
        android:textSize="70sp"
        android:nestedScrollingEnabled="false"
        android:maxLines="2"
        android:maxLength="17"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="0dp" />
Isuru
źródło

Odpowiedzi:

154

Aby szybko rozwiązać ten problem, użyj tego bardzo pomocnego skrótu w Android Studio:

Kliknij prawym przyciskiem myszy widżet w pytaniu> Układ ograniczenia> Rozważ ograniczenia:

wprowadź opis obrazu tutaj

Następnie możesz dostosować ograniczenia zgodnie z opisem tutaj: https://stackoverflow.com/a/37960888/5556250

Aktualizacja

To nie jest poprawne dla Android Studio v3 i nowszych. Zgodnie z komentarzem @ purpleladydragons :

W menu rozwijanym nie ma „Układu ograniczeń”. Użyj ikony różdżki w menu paska narzędzi nad podglądem projektu; jest przycisk „Infer Constraints”.

Jay Souper
źródło
2
Wielkie dzięki za rozwiązanie, jestem absolutnie początkującym, nie miałem pojęcia, co jest nie tak z pozycją widżetu
Atul Chavan
2
Świetne rozwiązanie, chociaż chciałbym, aby Android Studio po prostu zapisywał pozycje od samego początku, zamiast pozycji czasu wykonywania. Lepszym pytaniem jest, dlaczego Google uznał, że dobrym pomysłem jest przechowywanie pozycji tylko w czasie wykonywania? To niepotrzebny krok, aby deweloperzy klikali, aby wywnioskować pozycję.
Antony
Wielkie dzięki! Bardzo pomocny
Paul
24
Używam Android Studio 3.0 - „Układ ograniczeń” nie znajdował się w menu rozwijanym, gdy kliknąłem widżet prawym przyciskiem myszy. Zdałem sobie sprawę, że w menu paska narzędzi nad podglądem projektu jest ikona, która wyglądała jak magiczna różdżka, jest to również przycisk „Infer Constraints”.
purpleladydragons
rozwiązania nie można znaleźć w Android Studio w wersji 3 lub
nowszej
75

Rozwiązanie

Po prostu kliknij to, a zostanie rozwiązany

Cem U
źródło
Nie widzę paska narzędzi z tym przyciskiem. Jak to znaleźć?
i_am_david,
Nie wiem, czy używasz innej wersji Android Studio. Sprawdź ten przycisk, powinien gdzieś tam być. Jeśli nie możesz znaleźć, istnieją inne rozwiązania
Cem U
12

Trzeba dać wartość do ograniczeń ręcznie przy użyciu nowego edytora układu lub brakujące ograniczenia mogą być dodawane automatycznie, klikając przycisk magiczne różdżki w menu paska narzędzi podglądu projektu.

onexf
źródło
11

możesz spróbować: 1. Upewnij się, że dodałeś: kompiluj „com.android.support:design:25.3.1” (może powinieneś także dodać kompilację „com.android.support.constraint: constraint-layout: 1.0.2” ) 2.wprowadź opis obrazu tutaj

3. kliknij Infer Constraints , mam nadzieję, że może ci to pomóc.

BertKing
źródło
7

W porządku, więc wiem, że ta odpowiedź jest stara, ale dowiedziałem się, jak to zrobić w wersji 3.1.4. Więc dla mnie ten błąd pojawia się za każdym razem, gdy umieszczam nowy element w hierarchii, więc wiedziałem, że potrzebuję rozwiązania. Po krótkiej przeróbce odkryłem, jak to zrobić, wykonując następujące kroki:

  1. Kliknij obiekt prawym przyciskiem myszy i przejdź do Centrum.

Krok 1

  1. Następnie wybierz Poziomo.

Krok 2

  1. Powtórz te kroki, z wyjątkiem kliknięcia w pionie zamiast w poziomie.

Zakładając, że ta metoda nadal działa, po kroku drugim powinieneś zobaczyć faliste linie przebiegające poziomo w poprzek elementu, a po kroku trzecim, zarówno w poziomie, jak iw pionie. Po kroku trzecim błąd zniknie!

piesek
źródło
6

Kliknij prawym przyciskiem myszy, a następnie zaprojektuj część w tym komponencie, w którym wystąpił błąd, i wykonaj następujące kroki:

  • [np. jeśli błąd występuje w zwykłym tekście]

[1]

Układ ograniczeń zwykłego tekstu> Rozważ ograniczenia:

w końcu błąd zniknął

Satyam Mishra
źródło
6

Kliknij widżet prawym przyciskiem myszy i wybierz „środek” -> „poziomo”. Następnie wybierz „środek” -> „pionowo”.

Taimoor Hassan
źródło
6

W Android Studio v3 i nowszych, Infer Constraint zostało usunięte 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.

wprowadź opis obrazu tutaj

Vinoth
źródło
4

Wystarczy kliknąć widżet prawym przyciskiem myszy i wybrać „środek” -> „poziomo” i zrobić to ponownie, a następnie wybrać -> „pionowo”. To zadziałało ...

Ekane 3
źródło
0

możesz przejść do, a XML filenastępnie ustawić kursor myszy na przycisku, widoku tekstu lub cokolwiek wybierzesz dla swojego układu, a następnie naciśnij, Alt + Enteraby to naprawić, po czym błąd zniknie. to działa dla mnie.

Mohammad Heydari
źródło
0

Po kliknięciu ikony magicznej różdżki, aby wywnioskować ograniczenia:

1) W oknie Projekty przejdź do Skrypty Gradle> build.gradle (Moduł: aplikacja)

2) Przewiń w dół do zależności

3) Poszukaj implementacji „com.android.support:appcompat-v7:28.0.0-beta03”

4) Zmień ten wiersz na implementację „com.android.support:appcompat-v7:28.0.0-alpha1”

5) W górnej części okna powinien pojawić się baner, kliknij Synchronizuj teraz w prawym rogu.

Działa to dla Android Studio v3.1. Kliknij, aby wyświetlić obraz edycji do pliku build.gradle

pablo.programmer
źródło
0

Podczas tworzenia układu łatwiej jest pracować z jedną kontrolką naraz, zamiast dodawać je wszystkie naraz.

Z palety Layouts przeciągnij ConstraintLayout na ekran.

Przenieś żądane kontrolki wewnątrz ConstraintLayout.

Zatem ConstraintLayout będzie teraz elementami nadrzędnymi kontrolki, a jeśli przełączysz się na kod xml, kontrolki zostaną zagnieżdżone w ConstraintLayout.

Kliknij prawym przyciskiem myszy kontrolkę, wybierz opcję Ograniczenie z menu i wybierz sposób, w jaki chcesz wyrównać go z nadrzędnym układem ograniczeń, górą, początkiem itp.

Jeśli chcesz wyrównać dwie kontrolki względem siebie, wybierz obie kontrolki jednocześnie za pomocą klawisza Ctrl, a następnie kliknij prawym przyciskiem myszy, aby otworzyć menu ograniczeń.

Więcej informacji: https://developer.android.com/training/constraint-layout

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj Możesz określić odległość separacji wiązań na karcie Układ wiązań:

wprowadź opis obrazu tutaj

miłość na żywo
źródło