이보기는 제한되지 않습니다.


95

다음과 같은 오류가 발생하고 Android studio 2.2 Preview 3을 사용하고 있습니다. Google을 검색했지만 리소스를 찾을 수 없습니다.

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

여기에 이미지 설명 입력

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

답변:


152

이 문제 를 빠르게 해결 하려면 Android Studio에서 매우 유용한 바로 가기를 사용하세요.

질문 내 위젯> 제약 레이아웃> 제약 추론을 마우스 오른쪽 버튼으로 클릭합니다.

여기에 이미지 설명 입력

그런 다음 https://stackoverflow.com/a/37960888/5556250에 설명 된대로 제약 조건을 조정할 수 있습니다.

최신 정보

Android Studio v3 이상에서는 올바르지 않습니다. 당으로 purpleladydragons의 코멘트 @ :

"Constraint Layout"은 드롭 다운 메뉴에 없습니다. 디자인 미리보기 위의 도구 모음 메뉴에서 마술 지팡이 아이콘을 사용합니다. "Infer Constraints"버튼이 있습니다.


2
감사 솔루션에 대한 많은, 난 절대 초보자 오전, 난 위젯의 위치에 무엇이 잘못된 것인지 아무 생각이 없었다
아툴 Chavan을

2
Android Studio가 런타임 위치 대신 처음부터 위치를 저장하기를 바라지 만 훌륭한 솔루션입니다. 더 나은 질문은 Google이 런타임에만 위치를 저장하는 것이 좋은 생각이라고 생각한 이유입니다. 이는 개발자가 위치를 추론하기 위해 클릭하게 만드는 불필요한 단계입니다.
Antony

감사합니다! 매우 도움이 됨
Paul

23
Android Studio 3.0을 사용하고 있습니다. 위젯을 마우스 오른쪽 버튼으로 클릭했을 때 드롭 다운 메뉴에 "Constraint Layout"이 없었습니다. 디자인 미리보기 위의 툴바 메뉴에 마술 지팡이 모양의 아이콘이 있다는 것을 깨달았습니다.이 아이콘은 "Infer Constraints"버튼이기도합니다.
purpleladydragons

이 솔루션은 최대 더 이상 안드로이드 스튜디오 버전 3에서 찾을 수 없습니다
모하마드 헤이 다리를

74

해결책

이것을 클릭하면 해결됩니다


그 버튼이있는 툴바가 보이지 않습니다. 어떻게 찾나요?
i_am_david

다른 버전의 Android Studio를 사용하고 있는지 모르겠습니다. 버튼을 확인해주세요. 어딘가에있을 것입니다. 당신이 찾을 수 없습니다 경우, 다른 솔루션이 있습니다
인 Cem U

12

새 레이아웃 편집기를 사용할 때 수동으로 제약 조건에 값을 제공해야합니다. 그렇지 않으면 디자인 미리보기의 도구 모음 메뉴에서 마술 지팡이 버튼을 클릭하여 누락 된 제약 조건을 자동으로 추가 할 수 있습니다.


11

다음을 시도해 볼 수 있습니다. 1. 다음을 추가했는지 확인합니다. compile 'com.android.support:design:25.3.1' (또한 컴파일 'com.android.support.constraint : constraint-layout : 1.0.2'를 추가해야 합니다. ) 2.여기에 이미지 설명 입력

3. Infer Constraints를 클릭하면 도움이 되기를 바랍니다.


7

좋아, 나는이 대답이 오래되었다는 것을 알고 있지만 버전 3.1.4에서 이것을 수행하는 방법을 찾았습니다. 그래서 저에게이 오류는 계층 구조에 새 항목을 넣을 때마다 발생하므로 해결책이 필요하다는 것을 알았습니다. 잠시 꼼꼼히 살펴본 후 다음 단계에 따라 수행하는 방법을 찾았습니다.

  1. 개체를 마우스 오른쪽 단추로 클릭하고 가운데로 이동합니다.

1 단계

  1. 그런 다음 수평을 선택합니다.

2 단계

  1. 가로 대신 세로로 클릭하는 것을 제외하고이 단계를 반복합니다.

해당 방법이 여전히 작동하는 경우 2 단계 후에 항목이있는 위치를 가로 질러 가로로 구불 구불 한 선이 표시되고 3 단계 후에는 가로 및 세로로 구불 구불 한 선이 표시됩니다. 3 단계 후에 오류가 사라집니다!


6

오류가 발생한 구성 요소에서 마우스 오른쪽 버튼을 클릭 한 다음 부품을 디자인하고 다음 단계를 따르십시오.

  • [예 : 일반 텍스트 오류 발생시]

[1]

일반 텍스트 제약 레이아웃> 제약 추론 :

마침내 오류가 사라졌습니다


6

위젯을 마우스 오른쪽 버튼으로 클릭하고 "중앙"-> "수평"을 선택합니다. 그런 다음 "가운데"-> "수직"을 선택합니다.


6

Android Studio v3 이상에서는 Infer Constraint가 드롭 다운에서 제거되었습니다.

디자인 미리보기 위의 도구 모음 메뉴에서 마술 지팡이 아이콘 을 사용합니다 . " Infer Constraints "버튼이 있습니다. 이 버튼을 클릭하면 텍스트 필드에 일부 줄이 자동으로 추가되고 빨간색 줄이 제거됩니다.

여기에 이미지 설명 입력


4

위젯을 마우스 오른쪽 버튼으로 클릭하고 "center"-> "horizontally"를 선택하고 다시 한 다음-> "vertically"를 선택하면됩니다.


0

당신은 갈 수 XML file후 Enter 키를 눌러, 당신이 당신의 레이아웃에 무엇을 선택하여 버튼, 텍스트보기 나에 다음 마우스를 집중 커서 Alt + Enter오류가 나를 위해 gone.it 작동 될 것입니다 그 후, 그것을 해결하기 위해.


0

제약 조건을 추론하기 위해 마술 지팡이 아이콘을 클릭 한 후 :

1) 프로젝트 창에서 Gradle Scripts> build.gradle (Module : app)로 이동합니다.

2) 종속성으로 스크롤하십시오.

3) 구현 'com.android.support:appcompat-v7:28.0.0-beta03'을 찾습니다.

4)이 줄을 'com.android.support:appcompat-v7:28.0.0-alpha1'구현으로 변경하십시오.

5) 창 상단에 배너가 나타나면 오른쪽 모서리에있는 지금 동기화를 클릭합니다.

이것은 Android Studio v3.1에서 작동하며 build.gradle 파일 편집 이미지를 클릭합니다.


0

레이아웃을 만들 때 한 번에 모든 컨트롤을 추가하는 대신 한 번에 하나의 컨트롤로 작업하는 것이 더 쉽습니다.

레이아웃 팔레트에서 ConstraintLayout을 화면으로 끕니다.

ConstraintLayout 내에서 원하는 컨트롤을 이동합니다.

따라서 ConstraintLayout은 이제 컨트롤의 부모가되고 xml 코드로 전환하면 컨트롤이 ConstraintLayout 아래에 중첩됩니다.

컨트롤을 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 Constraint를 선택한 다음 부모 ConstraintLayout, top, start 등에 정렬 할 방법을 선택합니다.

두 컨트롤을 서로 상대적으로 정렬해야하는 경우 Ctrl 키를 사용하여 두 컨트롤을 동시에 선택한 다음 마우스 오른쪽 버튼을 클릭하여 제한 메뉴를 엽니 다.

더 많은 정보 : https://developer.android.com/training/constraint-layout

여기에 이미지 설명 입력

여기에 이미지 설명 입력 구속 레이아웃 탭에서 구속 간격을 지정할 수 있습니다.

여기에 이미지 설명 입력

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.