1
resposta

[Dúvida] Scroll não funciona no AlertDialog

O funcionanmento do Scroll não funciona com o AlertDialog. Testei em dois aparelhos diferentes! Em um a tela é grande e não tem necessidade do scroll, porém, em outro aparelho com tela menor o alertdialog só mostra até o textinput e quando vou fazer o scroll para chegar nos botões do alertdialog, o scroll não funciona. Tem algum detalhe que deixei passar?

1 resposta

Olá, Ricardo.

Tudo bem?

No seu caso, parece que o ScrollView dentro do AlertDialog não está funcionando corretamente em dispositivos com telas menores. Vamos tentar resolver isso!

Aqui está um exemplo de como você pode estruturar seu layout personalizado para o AlertDialog com ScrollView:

  1. Crie um layout XML personalizado para o seu AlertDialog. Vamos chamar de dialog_custom.xml.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="16dp">

        <!-- Seu conteúdo aqui -->
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Título do Dialog" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Digite algo" />

        <!-- Outros componentes -->

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Botão 1" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Botão 2" />

    </LinearLayout>
</ScrollView>
  1. No seu código Kotlin, configure o AlertDialog para usar esse layout personalizado.
val dialogView = layoutInflater.inflate(R.layout.dialog_custom, null)

val dialog = AlertDialog.Builder(this)
    .setView(dialogView)
    .setPositiveButton("OK") { dialog, which ->
        // Ação do botão OK
    }
    .setNegativeButton("Cancelar") { dialog, which ->
        // Ação do botão Cancelar
    }
    .create()

dialog.show()

Certifique-se de que o ScrollView está configurado corretamente no seu layout XML, especialmente com android:fillViewport="true", para garantir que ele ocupe todo o espaço disponível e permita o scroll.

Isso deve resolver o problema.

Qualquer coisa manda aqui de novo. Bons estudos.