[RESOLVIDO] Não fiz o AppBarLayout, mas mesmo assim ele aparece na tela

12 respostas Resolvido
java
W

Boa tarde, pessoal.
Ta acontecendo uma coisa engraçada no meu app, Atualizei o Android Studio para a versão 3.6.2 e quando coloco meu app pra rodar (sem ter implementado o AppBarLayout), o AppBarLayout aparece na tela e ainda mais todo expandido.
Então eu implementei ele, mas quando vou rodar o app, ele fecha na hora que abre.
Alguém pode me ajudar com isso?
Desde já obg!

12 Respostas

R

mostra o seu style

W

Desculpa a demora.

Meu styles tava assim:

<?xml version="1.0" encoding="utf-8"?>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<style name="NoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<string name="nav_app_bar_navigate_up_description" msgid="6301633601645100427">"Prejsť hore"</string>

//<string name="nav_app_bar_open_drawer_description" msgid="7456070600745802113">"Otvoriť navigačný vysúvací panel"</string>

marcando erro no AppTheme. Daí fui pesquisar sobre, e vi que o styles da turma estava com essa parte no começo:

<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

Daí coloquei essa parte no meu styles e ele ficou assim:

<?xml version="1.0" encoding="utf-8"?>
<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<style name="NoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<string name="nav_app_bar_navigate_up_description" msgid="6301633601645100427">"Prejsť hore"</string>

//<string name="nav_app_bar_open_drawer_description" msgid="7456070600745802113">"Otvoriť navigačný vysúvací panel"</string>

Daí o styles ficou sem erro.

Não lembro se esse erro do AppBarLayout estava acontecendo antes desse erro do styles, sem falar que não sei oq foi que aconteceu com o styles pra ele ter ficado sem a parte de cima e dando erro no AppTheme.

Grata e aguardando resposta.

R

Isso aqui tudo influencia no seu layout, se vc setou alguma coisa disso no manifest ou na classe, ele vai mudar… faz assim, cola esse styles abaixo no seu arquivo e ve se vai dar erro:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
W

No caso, substituir:

por: certo? Meu Manifest tá asism no começo: Obrigada.
W

Nossa, tentei pro 3x enviar e só foi isso ¬¬ obg, orochimaru, qq coisa entro em contato novamente. Mt obg pela atenção!

W

orochimaru, não mudou nd…

R

Ok, mostra o código do seu xml e mostra a imagem, se possível, mostra o código da classe que trabalha com esse layout.

Tipo:

MainActivity
activity_main_layout.xml

W

orochimaru, rodou! Mas está diferente das outras activitys. A activity do main é essa:

E as outras estão como esta:

Todas as outras estão se comportando como com os 8dps, mas a do main não.

R

posta o código da classe, mostra o manifest…

sempre q for colar algum código aqui, seleciona ele todo e clica em </>

image

W

Então, o Manifest tá assim:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="sistema.escola">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/icone_app_escola"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/icone_app_escola"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".UploadArquivo"
            android:label="@string/title_activity_upload_arquivo"
            android:theme="@style/NoActionBar"></activity>
        <activity
            android:name=".BackupArquivo"
            android:label="@string/title_activity_backup_arquivo"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".BackupUploadArquivo"
            android:label="@string/title_activity_backup_uploadarquivo"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".FormatarBancoDeDados"
            android:label="@string/title_activity_formatar_banco_de_dados"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".RemoverAluno"
            android:label="@string/title_activity_remover_aluno"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".AtualizarAluno"
            android:label="@string/title_activity_atualizar_aluno"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".ConsultarAluno"
            android:label="@string/title_activity_consultar_aluno"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".ListarAlunos"
            android:label="@string/title_activity_listar_alunos"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".FotoAmpliada"
            android:label="@string/title_activity_foto_ampliada"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".InserirAluno"
            android:label="@string/title_activity_inserir_aluno"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

</manifest>

E o AppBarLayout está assim (em todas as activitys):

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:background="@color/colorPrimary"
    android:theme="@style/AppTheme.AppBarOverlay"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</com.google.android.material.appbar.AppBarLayout>

Mas só o do main que não está aceitando os 8dps

R
Solucao aceita

pq vc ta passando o mesmo style pra todos layouts? se vc passar um no main, o restante vai pegar o mesmo style (a menos q vc mude, igual vc ta fazendo)

deixa esse no main, e o restante vc tira.

Vc passou outro style nesse layout aí

android:theme="@style/AppTheme.AppBarOverlay"

tira essa linha

W

Ok, orochimaru, era isso msm, obg!

Criado 9 de abril de 2020
Ultima resposta 10 de abr. de 2020
Respostas 12
Participantes 2