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" />

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”.


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


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.


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.


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!


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ął


6

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


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


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 ...


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.


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


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.