3
respostas

FAB não está no lugar certo

Eu estava com problemas em mover a FAB para o canto inferior, ao fazer isso tornava filha da listview, então resolvi o problema com a solução do Rafael. No entanto a parte visual a FAB está no lugar certo, porém quando eu rodo o APP, o FAB fica em cima. Não sei o que está acontecendo. Segue código de como está:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">

    <ListView
        android:id="@+id/activity_main_lista_de_alunos"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </ListView>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/activity_main_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_marginBottom="35dp"
        android:layout_marginEnd="35dp"
        android:clickable="true">

    </com.google.android.material.floatingactionbutton.FloatingActionButton>


</RelativeLayout>
3 respostas

Uma coisa que percebi é que o FAB está no lugar do primeiro item da lista, ao invés de ter meu nome, está o ícone no lugar e não o primeiro argumento do array.

Olá Vitor,

Eu tenho copiado e colado o teu código, ao compilar funcionou corretamente e o FAB está no lugar correto onde tu tem definido. Acredito que possa ser um pequeno bug de compilação, mas te aconselho a dar uma olhada na atualização da dependência do Material Design no Gradle, porém, caso esteja usando a dependência nativa do FAB aconselho a não usar mais.

com.google.android.material:material:1.1.0

Se caso o problema persistir, tenta trocar o Layout de RelativeLayout para ConstraintLayout :

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/activity_main_lista_de_alunos"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/activity_main_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_marginEnd="35dp"
        android:layout_marginBottom="35dp"
        android:clickable="true"
        android:focusable="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent">

    </com.google.android.material.floatingactionbutton.FloatingActionButton>


</androidx.constraintlayout.widget.ConstraintLayout>

Eu simplesmente criei outro projeto e colei os códigos e funcionou normalmente, não sei o que rolou, e minha dependência está na mesma versão indicada. Obrigado!

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