Pandangan ini tidak dibatasi

95

Saya mendapatkan kesalahan berikut dan saya menggunakan Android studio 2.2 Preview 3. Saya mencari di Google tetapi tidak dapat menemukan sumber daya apa pun.

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

masukkan deskripsi gambar di sini

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

Jawaban:

152

Untuk mengatasi ini dengan cepat , gunakan pintasan yang sangat berguna ini di Android Studio:

Widget-dalam-pertanyaan klik kanan> Constraint Layout> Infer Constraints:

masukkan deskripsi gambar di sini

Setelah itu, Anda dapat mengubah batasan seperti yang dijelaskan di sini: https://stackoverflow.com/a/37960888/5556250

Memperbarui

Ini tidak benar untuk Android Studio v3 dan yang lebih baru. Sesuai komentar @ purpleladydragons :

"Constraint Layout" tidak ada dalam menu drop-down. Gunakan ikon tongkat ajaib pada menu bilah alat di atas pratinjau desain; ada tombol "Infer Constraints".

Jay Souper
sumber
2
Terima kasih banyak untuk solusi Anda, saya seorang pemula mutlak, aku tidak tahu apa yang salah dengan posisi widget
Atul Chavan
2
Solusi hebat meskipun saya berharap Android Studio hanya menyimpan posisi dari awal, alih-alih posisi waktu proses. Pertanyaan yang lebih baik adalah mengapa Google menganggap menyimpan posisi hanya selama waktu pengoperasian merupakan ide yang baik? Itu adalah langkah yang tidak perlu untuk membuat klik pengembang untuk menyimpulkan posisi.
Antony
Terima kasih banyak! Sangat membantu
Paul
23
Saya menggunakan Android Studio 3.0 - "Constraint Layout" tidak ada di menu drop-down saat saya mengklik kanan widget. Saya menyadari ada ikon yang tampak seperti tongkat ajaib di menu toolbar di atas pratinjau desain, itu juga tombol "Infer Constraints".
purpleladydragons
solusinya tidak dapat ditemukan lagi di Android Studio Versi 3 atau lebih tinggi
Mohammad Heydari
75

Larutan

Cukup klik ini dan itu akan diselesaikan

Cem U
sumber
Saya tidak melihat bilah alat dengan tombol itu. Bagaimana cara menemukannya?
i_am_david
Saya tidak tahu apakah Anda menggunakan versi Android Studio yang berbeda. Silakan periksa tombol itu, seharusnya ada di suatu tempat di sana. Jika Anda tidak dapat menemukannya, ada solusi lain
Cem U
12

Anda perlu memberikan nilai pada batasan secara manual saat menggunakan editor tata letak baru atau batasan yang hilang dapat ditambahkan secara otomatis dengan mengklik tombol tongkat ajaib di menu bilah alat pratinjau desain.

onexf
sumber
11

Anda dapat mencoba ini: 1. pastikan Anda telah menambahkan: compile 'com.android.support:design:25.3.1' (mungkin Anda juga harus menambahkan compile 'com.android.support.constraint: constraint-layout: 1.0.2' ) 2.masukkan deskripsi gambar di sini

3. klik Infer Constraints , semoga bisa membantu anda.

BertKing
sumber
7

Baiklah, jadi saya tahu jawaban ini sudah lama, tetapi saya menemukan cara melakukan ini untuk versi 3.1.4. Jadi bagi saya kesalahan ini terjadi setiap kali saya memasukkan item baru ke dalam hierarki, jadi saya tahu saya membutuhkan solusi. Setelah bermain-main sebentar, saya menemukan cara melakukannya dengan mengikuti langkah-langkah ini:

  1. Klik kanan objek dan pergi ke Center.

Langkah 1

  1. Kemudian pilih Secara Horizontal.

Langkah 2

  1. Ulangi langkah tersebut, kecuali klik Vertikal dan bukan Horizontal.

Asalkan metode itu masih berfungsi, setelah langkah kedua Anda akan melihat garis berlekuk-lekuk melintang secara horizontal di mana item tersebut berada, dan setelah langkah ketiga, baik secara horizontal maupun vertikal. Setelah langkah ketiga, kesalahan akan hilang!

tdog
sumber
6

Klik kanan kemudian desain bagian pada komponen yang mengalami kesalahan dan ikuti langkah-langkah berikut:

  • [untuk mantan. jika terjadi kesalahan dalam Teks Biasa]

[1]

Tata Letak Batasan Teks Biasa> Batasan Infer:

akhirnya kesalahan telah hilang

Satyam Mishra
sumber
6

Klik kanan pada widget dan pilih "center" -> "horizontal". Kemudian pilih "tengah" -> "vertikal".

Taimoor Hassan
sumber
6

Dari Android Studio v3 dan yang lebih baru, Infer Constraint telah dihapus dari menu drop-down.

Gunakan ikon tongkat ajaib pada menu bilah alat di atas pratinjau desain; ada tombol " Infer Constraints ". Klik tombol ini, ini secara otomatis akan menambahkan beberapa baris di bidang teks dan garis merah akan dihapus.

masukkan deskripsi gambar di sini

Vinoth
sumber
4

Anda hanya perlu mengklik kanan pada widget dan memilih "center" -> "horizontal" dan melakukannya lagi lalu pilih -> "vertical" Ini berhasil untuk saya ...

Ekane 3
sumber
0

Anda dapat pergi ke XML filelalu fokuskan kursor mouse Anda ke tombol Anda, tampilan teks atau apa pun yang Anda pilih untuk tata letak Anda, lalu tekan Alt + Enteruntuk memperbaikinya, setelah itu kesalahan akan hilang. itu berfungsi untuk saya.

Mohammad Heydari
sumber
0

Setelah mengklik ikon tongkat ajaib untuk menyimpulkan kendala:

1) Di jendela Projects, buka Gradle Scripts> build.gradle (Module: app)

2) Gulir ke bawah ke dependensi

3) Cari implementasi 'com.android.support:appcompat-v7:28.0.0-beta03'

4) Ubah baris ini menjadi implementasi 'com.android.support:appcompat-v7:28.0.0-alpha1'

5) Spanduk akan muncul di bagian atas jendela, klik Sinkronkan Sekarang di sudut kanan.

Ini berfungsi untuk Android Studio v3.1 klik untuk gambar edit ke file build.gradle

pablo.programmer
sumber
0

Saat membuat tata letak, lebih mudah untuk bekerja dengan satu kontrol pada satu waktu, daripada menambahkan semuanya sekaligus.

Dari Layouts Palette, seret ConstraintLayout ke layar.

Pindahkan kontrol yang Anda inginkan ke dalam ConstraintLayout.

Jadi, ConstraintLayout sekarang akan menjadi induk kontrol, dan jika Anda beralih ke kode xml, kontrol akan ditempatkan di bawah ConstraintLayout.

Klik kanan pada kontrol Anda, pilih Batasan dari menu, dan pilih bagaimana Anda ingin menyelaraskannya dengan ConstraintLayout induk, atas, mulai, dll.

Jika Anda perlu menyelaraskan dua kontrol relatif satu sama lain, pilih kedua kontrol secara bersamaan dengan tombol Ctrl, lalu klik kanan untuk membuka menu pembatas.

Info selengkapnya: https://developer.android.com/training/constraint-layout

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini Anda dapat menentukan jarak pemisahan batasan di tab Constraint Layout:

masukkan deskripsi gambar di sini

cinta hidup
sumber