O novo editor de layout no Android Studio 2.2 continua mostrando esse erro em visualizações como EditText e Buttons. gentilmente ajude. Além disso, agradecemos quaisquer links que ajudem na integração com o novo layout de restrição.
código:
<?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>
Respostas:
O layout de restrição visa reduzir as hierarquias de layout e melhorar o desempenho dos layouts (tecnicamente, você não precisa fazer alterações para diferentes tamanhos de tela, sem sobreposição, funciona bem em um celular e também em uma guia com as mesmas restrições). você se livra do erro acima ao usar o novo editor de layout.
Clique no pequeno círculo e arraste-o para a esquerda até que o círculo fique verde, para adicionar uma restrição à esquerda (forneça um número, digamos x dp. Repita-o com os outros lados e deixe a restrição inferior em branco se houver outra visualização abaixo dela .
Edit: De acordo com o site do desenvolvedor, em vez de adicionar restrições a cada visão conforme você as coloca no layout, você pode mover cada visão para as posições desejadas e clicar em Inferir restrições para criar restrições automaticamente. mais aqui
fonte
No Android Studio v3 e superior, Infer Constraint foi removido da lista suspensa.
Use o ícone da varinha mágica no menu da barra de ferramentas acima da visualização do projeto; existe o botão " Inferir restrições ". Clique neste botão, isso adicionará automaticamente algumas linhas no campo de texto e a linha vermelha será removida.
fonte
Basta copiar este código para todos os componentes que você arrastará.
exemplo:
fonte
Vá para Design, clique com o botão direito do mouse em seu widget, Constraint Layout >> Infer Constraints. Você pode observar que algum código foi adicionado automaticamente ao seu Texto.
fonte
fonte
Se inferir o
Constraints
ainda apresentar o erro, basta usar este código:fonte
Você precisa arrastar o
EditText
da borda do layout e não apenas o outro widget. Você também pode adicionar restrições apenas arrastando o ponto de restrição que circunda o widget para a borda da tela para adicionar restrições conforme especificado.O código modificado será semelhante a este:
fonte
Vá para o texto de layout XML onde o widget (botão ou outra Visualização) indica erro, focalize o cursor lá e pressione alt+ entere selecione os atributos de restrições ausentes.
fonte
por exemplo eu tenho isso
usar o layout RelativeLayout como este
fonte
Basta mudar para a Visualização de design e localizar o widget em questão. Pegue um dos pontos no limite do widget e junte-o a uma borda apropriada da tela (ou a um ponto em algum outro widget).
Por exemplo, se o widget for uma barra de ferramentas, basta pegar o ponto superior e uni-lo à borda superior da tela do telefone, conforme mostrado na imagem.
fonte
Isso me ajuda muito
fonte
Você tem que mudar
androidx.constraintlayout.widget.ConstraintLayout
paraRelativeLayout
.fonte