8
respostas

Erro - CardView

Olá pessoal!

Estou no prcoesso de criacão com cardView, fiz o processo conforme indicado pelo instrutor. Na parte do design em Compenent Tree, inseri o cardView, após incluir os intens no cardView e mais uma constraintLayout, para poder novamente incluir os itens dentro desta última constraint. Porém, ao fazer isso aparece a seguinte mesnagem de erro:

This view is not constrained. It only has designtime positions, so it will jump to (0,0) at runtime unless you add the constraints

Mas, no código tem todas as retrições. Acho que não estou compreendendo este tipo de erro, se alguém puder me ajudar.Insira aqui a descrição dessa imagem para ajudar na acessibilidade

8 respostas

Olá Elizandra, tudo bem ?

Poderia me enviar o código do seu item_pacote.xml ?

Mas pelo que vi aqui, aparenta ser a falta de constraints do CardView, pois ele costuma ser a ViewGroup raíz, substituir o primeiro ConstraintLayout pelo CardView talvez resolva seu problema, caso não eu fico no aguardo do seu xml :)

Estarei à disposição para quaisquer dúvidas.

Forte abraço e bons estudos !

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Oi Matheus. Tudo bem por aqui, obrigada!

Este é o código.

Obs: quando segui o processo as medidas do width e height mudam totalmente. Como se elas ficassem tanto x e y como 0.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">

    <androidx.cardview.widget.CardView
        android:id="@+id/item_pacote_cardview"
        android:layout_width="0dp"
        android:layout_height="300dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" >

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/item_pacote_local"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="8dp"
                android:background="@android:drawable/screen_background_dark_transparent"
                android:padding="8dp"
                android:textColor="@color/white"
                android:textSize="14sp"
                android:textStyle="bold"
                tools:layout_editor_absoluteX="8dp"
                tools:layout_editor_absoluteY="8dp"
                tools:text="@sample/pacotes.json/pacotes/local" />

            <ImageView
                android:id="@+id/item_pacote_imagem"
                android:layout_width="0dp"
                android:layout_height="100dp"
                android:scaleType="centerCrop"
                tools:src="@sample/pacotes.json/pacotes/imagem" />

            <View
                android:id="@+id/item_pacote_divisor"
                android:layout_width="0dp"
                android:layout_height="3dp"
                android:background="@android:color/holo_orange_dark" />

            <TextView
                android:id="@+id/item_pacote_dias"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="8dp"
                android:textSize="16sp"
                android:textStyle="bold"
                tools:layout_editor_absoluteX="8dp"
                tools:layout_editor_absoluteY="8dp"
                tools:text="@sample/pacotes.json/pacotes/dias" />

            <TextView
                android:id="@+id/item_pacote_preco"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@android:color/holo_green_dark"
                android:textSize="20sp"
                tools:text="@sample/pacotes.json/pacotes/preco" />
        </androidx.constraintlayout.widget.ConstraintLayout>

    </androidx.cardview.widget.CardView>

</androidx.constraintlayout.widget.ConstraintLayout>

Espero que consiga me ajudar! :)

Oi de novo Elizandra, tranquilo ?

O erro se encontra realmente na falta das ligações das constraints, recomendo dar uma revisada especificamente na parte de regras do constraintLayout, para resolver esse problema você teria que fazer a ligação de todas as views dentro do constraint, mas eu adiantei um pouquinho e já fiz essas alterações, uma possível solução seria essa aqui:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="300dp">

    <androidx.cardview.widget.CardView
        android:id="@+id/item_pacote_cardview"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" >

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">


            <ImageView
                android:id="@+id/item_pacote_imagem"
                android:layout_width="0dp"
                android:layout_height="100dp"
                android:scaleType="centerCrop"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                tools:src="@sample/pacotes.json/pacotes/imagem" />


            <TextView
                android:id="@+id/item_pacote_local"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="8dp"
                android:background="@android:drawable/screen_background_dark_transparent"
                android:padding="8dp"
                android:textColor="@color/white"
                android:textSize="14sp"
                android:textStyle="bold"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintBottom_toTopOf="@id/item_pacote_divisor"
                tools:text="@sample/pacotes.json/pacotes/local" />

            <View
                android:id="@+id/item_pacote_divisor"
                android:layout_width="0dp"
                android:layout_height="3dp"
                app:layout_constraintTop_toBottomOf="@id/item_pacote_imagem"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                android:background="@android:color/holo_orange_dark" />

            <TextView
                android:id="@+id/item_pacote_dias"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="8dp"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/item_pacote_divisor"
                tools:text="@sample/pacotes.json/pacotes/dias" />

            <TextView
                android:id="@+id/item_pacote_preco"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@android:color/holo_green_dark"
                android:textSize="20sp"
                app:layout_constraintTop_toBottomOf="@id/item_pacote_dias"
                app:layout_constraintStart_toStartOf="@id/item_pacote_dias"
                tools:text="@sample/pacotes.json/pacotes/preco" />

        </androidx.constraintlayout.widget.ConstraintLayout>

    </androidx.cardview.widget.CardView>

</androidx.constraintlayout.widget.ConstraintLayout>

Fora algumas alterações pontuais que fiz no tamanho do layout, está tudo como você me enviou, inclusive aqui vai um preview de como ficaria:

layout de um cartão com uma imagem de uma flor azul, um texto escrito flores na parte inferior esquerda da imagem, uma fina barra laranja abaixo da imagem, dois texto dispostos ao lado esquerdo um abaixo do outro, o primeiro em preto escrito 14 dias e o segundo em verde um pouco maior escrito 14 reais e 50 centavos.

Se restar qualquer dúvida só retornar o post aqui, ficarei feliz em ajudar :)

Grande abraço e bons estudos !!

Nossa que demais, Matheus! Vou revisar sobre isso, muito obrigada. :)

Oi, Matheus. Voltei! Tudo bem com você?

Analisei todo o código antes de inserir o CardView e de fato quando o insiro as minhas constraints mudam totalmente.

O passo que estou fazendo é igual o da aula, vou explicar!

O código está com todas as constraints inseridas e do jeito que desejo visualizar, igual ao modelo que envie acima. Dentro do AS em Componentes Tree, aparece todos eles. Preciso ir em Palete, clico em Containers arrasto o CardView para o Component Tree. Em seguida seleciono os competente que quero dentro do CardView, quando faço isso perder todas as constraints. De acordo com a aula, para resolver isso eu preciso ir em Palete > Layout > ConstraintLayout e arrastar ela para Component Tree, após inserir todos os componente para dentro desta Constraint. Porém, mesmo assim perde todas as medidas que inseri incialmente no código.

Enviei um print de antes e depois.

Aqui! Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Oi de novo Elizandra, tudo bem por ai?

Pelos testes que fiz aqui, talvez essa funcionalidade de arrastar as Views como mostrado na aula, possa não funcionar como esperado hoje em dia, por conta de uma série de atualizações do AS, nesses casos eu recomendaria fazer o processo "na mão" mesmo, agradeço por nos contatar dessa feature possivelmente removida.

Se ficar qualquer dúvida, só postar aqui no fórum que estaremos à disposição ^^

Forte abraço e bons estudos !!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software