Estou usando uma atividade com o tema do diálogo definido e quero que seja em tela cheia. Eu tentei todo tipo de coisa, mesmo passando pelo WindowManager para expandir a janela para largura e altura manualmente, mas nada funciona.
Aparentemente, uma janela de diálogo (ou uma atividade com o tema da caixa de diálogo) será expandida apenas de acordo com seu conteúdo, mas mesmo isso nem sempre funciona. Por exemplo, mostro um círculo da barra de progresso com largura e altura definidas como FILL_PARENT (o mesmo acontece com o contêiner de layout), mas ainda assim, a caixa de diálogo envolve a barra de progresso muito menor, em vez de preencher a tela.
Deve haver uma maneira de exibir algo pequeno dentro de uma janela de diálogo, mas ele deve ser expandido para o tamanho de tela inteira sem que o conteúdo também seja redimensionado?
fonte
Respostas:
Encontrei a solução:
Na sua atividade que possui o
Theme.Dialog
estilo definido, faça o seguinte:É importante que você ligue
Window.setLayout()
depois de ligarsetContentView()
, caso contrário não funcionará.fonte
import android.view.ViewGroup.LayoutParams;
Você pode adicionar esses valores ao seu estilo android: windowMinWidthMajor e android: windowMinWidthMinor
fonte
Eu só quero preencher apenas 80% da tela para o que fiz assim abaixo
funciona apenas quando coloco a linha getwindow (). setLayout ... abaixo do setContentView (..)
obrigado @Matthias
fonte
Embrulhe seu dialog_custom_layout.xml em RelativeLayout em vez de qualquer outro layout. Isso funcionou para mim.
fonte
Para caixa de diálogo Isso pode ser útil para alguém. Eu quero uma caixa de diálogo para ter largura total da tela. procurou muito, mas nada foi útil. Finalmente, isso funcionou para mim:
depois de adicionar isso, minha caixa de diálogo aparece em toda a largura da tela.
fonte
Esta resposta é uma solução alternativa para aqueles que usam "Theme.AppCompat.Dialog" ou qualquer outro descendente "Theme.AppCompat.Dialog" como "Theme.AppCompat.Light.Dialog", "Theme.AppCompat.DayNight.Dialog", etc. Eu próprio tenho que usar a caixa de diálogo AppCompat porque uso AppCompatActivity como se estende a todas as minhas atividades. Haverá um problema que fará com que o diálogo tenha preenchimento por todos os lados (superior, direito, inferior e esquerdo) se usarmos a resposta aceita.
No estilo da sua atividade, adicione estes códigos
Como você pode notar, o problema que gera preenchimento para a nossa caixa de diálogo é "android: windowBackground", então aqui faço com que o plano de fundo da janela seja nulo.
fonte
Defina uma largura mínima no layout superior.
Por exemplo:
fonte
A resposta de Matthias está certa, mas ainda não está preenchendo a tela inteira, pois possui um pequeno preenchimento em cada lado (apontado por @Holmes). Além do código, podemos corrigir isso estendendo o estilo Theme.Dialog e adicionando alguns atributos como este.
Simplesmente declaramos Atividade com o tema definido como
MyDialog
:fonte
Isso seria útil para alguém como eu. Crie um estilo de diálogo personalizado:
No
AndroidManifest.xml
tema do conjunto de arquivos para a atividade desejada:Isso é tudo, não há necessidade de chamar métodos programaticamente.
fonte
No seu arquivo de manifesto onde nossa atividade é definida
sem barra de ação
fonte