Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro ao tentar adicionar o CardView

Bom dia, tudo bem?

Depois de inserir o CardView o componente ficou com esse alerta de erro e nao aparece os atributos, segue abaixo o erro.

This view is not constrained vertically: at runtime it will jump to the top unless you add a vertical constraint The layout editor allows you to place widgets anywhere on the canvas, and it records the current position with designtime attributes (such as layout_editor_absoluteX). These attributes are not applied at runtime, so if you push your layout on a device, the widgets may appear in a different location than shown in the editor. To fix this, make sure a widget has both horizontal and vertical constraints by dragging from the edge connections. Issue id: MissingConstraints.

Poderia me indicar o que pode ser?

Obrigado

4 respostas

Olá Thiago, verifica se suas layout_constraint estão mapeadas corretamentes. talvez quando vc adicionou o CardView e arrastou os itens pra dentro do ConstraintLayout os itens tenha perdido a referencia da constraint.

Da uma olhada no codigo abaixo, tive que continuar o projeto sem utitlizar o cardview.

<?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"
    tools:context=".ui.activity.ListaPacotesActivity">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="120dp"
        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"
        app:srcCompat="@android:color/holo_purple" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="20dp"
        android:layout_marginTop="20dp"
        android:text="Especiais"
        android:textColor="@android:color/white"
        android:textSize="24sp"
        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" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="Brasil"
        android:textColor="@android:color/white"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintStart_toStartOf="@+id/textView"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <ListView
        android:id="@+id/lista_pacotes_listview"
        android:layout_width="0dp"
        android:layout_height="0dp"
        tools:listitem="@layout/item_pacote"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/imageView"
        app:layout_constraintBottom_toBottomOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>
solução!

Thiago, o cardview tem que ficar no xml que representa o item da sua lista. seguindo a seguinte hierarquia :

ConstraintLayout > CardView > ConstraintLayout > (ImageView/TextView /View).

temos que utilizar um layout do tipo ViewGroup para agrupar nossas views dentro de um CardView, por isso utilizei o ContraintLayout dentro do CardView.

OBS: vc ta utilizando o CardView no layout de activity_lista_pacotes.xml, mas deve ser utilizado no seu item_pacote.xml para criar um card para cada item da sua lista.

William, tudo bem?

Problema resolvido, obrigado pela ajuda.