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

Problema com o FloatingActionButton

Ao arrastar o FloatingActionButton, além dele não aparecer no meu layout, recebo os seguintes warnings:

AdapterViews cannot have children in XML

A list/grid should have no children declared in XML AdapterViews such as ListViews must be configured with data from Java code, such as a ListAdapter. Issue id: AdapterViewChildren http://developer.android.com/reference/android/widget/AdapterView.html

Keyboard inaccessible widget

clickable' attribute found, please also add 'focusable' A widget that is declared to be clickable but not declared to be focusable is not accessible via the keyboard. Please add the focusable attribute as well.

Issue id: KeyboardInaccessibleWidget

Suggested Fix

Set focusable = "true"

--

Segue o código da activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/floatingActionButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            app:srcCompat="@mipmap/ic_launcher" />
    </ListView>
</LinearLayout>

Estou utilizando a versão 3.5.1 do Android Studio no Linux/Ubuntu.

5 respostas

Abrindo o Component Tree, vi que o floatingActionButton estava herdando a activity_main_lista_de_alunos.

Ao selecionar e arrastar para o LinearLayout, o primeiro warning (AdapterViews cannot have children in XML) desapareceu, e fazendo o Fix sugerido pelo próprio Android Studio, o segundo warning também desapareceu e o ícone do Botão está no meu layout.

Porém, quando eu seleciono o Botão na interface gráfica, e arrasto para o canto da tela, por exemplo, novamente o meu floatingActionButton volta a pertencer ao activity_main no meu Component Tree.

Mesmo convertendo o LinearLayout para RelativeLayout, o problema se mantém.


Atualizando:

Consegui o resultado que queria alterando o código fonte com o layout_margin. Existe algo a se fazer para conseguir trabalhar usando a interface gráfica?

eu continuo com o mesmo problema do guilherme

Estou tendo o mesmo problema.

solução!

Não sei se é algo da versão do Android Studio, mas só consegui resolver via Text. Continuem com o curso que na sessão de XML vocês aprendem a resolver.

Mas pelo visto, não sei se tem uma forma de fazer utilizando a interface gráfica com drag 'n drop

Estou com esse mesmo problema que tambem consegui resolver adicionando as margens manualmente, e outro que aparece quando vou executar e apartir desse ponto n consigo mais executar o programa, segue mensagem de erro:

The following classes could not be instantiated:

  • com.google.android.material.floatingactionbutton.FloatingActionButton (Open Class, Show Exception, Clear Cache) Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE. If this is an unexpected error you can also try to build the project, then manually refresh the layout. Exception Details java.lang.NoClassDefFoundError: com/google/android/material/R$attr at com.google.android.material.floatingactionbutton.FloatingActionButton.(FloatingActionButton.java:188) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) at android.view.LayoutInflater.rInflate(LayoutInflater.java:837) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:394) Copy stack to clipboard