Eu sei como obter a visualização raiz com View.getRootView () . Também posso obter a visualização do onClick
evento de um botão em que o argumento é uma Visualização . Mas como posso obter a visualização em uma atividade ?
android
android-activity
view
Lalith
fonte
fonte
setContentView()
e a exibição que você forneceu já é a raiz. Se você precisar do identificador dessa exibição, basta colocar um ID no XAML e tudofindViewById()
ficará bem.Respostas:
Se você precisar da visualização raiz de sua atividade (para poder adicionar seu conteúdo lá), use
Também foi relatado que em alguns dispositivos você precisa usar
em vez de.
Observe que, como o Booger relatou, isso pode estar atrás da barra de navegação (com botão voltar etc.) em alguns dispositivos (mas parece que na maioria dos dispositivos não é).
Se você precisar obter a visão que adicionou à sua atividade usando o
setContentView()
método, como escreveu pottedmeat, você pode usarMas é melhor apenas definir o ID para essa visualização no layout xml e usar esse ID.
fonte
É isso que eu uso para obter a visualização raiz, conforme encontrada no arquivo XML atribuído a
setContentView
:fonte
ActionBar
também?Eu testei isso no Android 4.0.3, apenas:
dar a mesma visão do que obtemos
e
dando filho de sua
Por favor confirme.
fonte
Obtenha a visualização raiz da atividade atual.
Dentro da nossa atividade, podemos ter uma
root
visão com:ou
fonte
No Kotlin, podemos fazê-lo um pouco mais curto:
fonte
Apenas alguém precisa de uma maneira mais fácil:
O código a seguir fornece uma visão de toda a atividade:
View v1 = getWindow().getDecorView().getRootView();
Para obter uma visão certian da atividade, por exemplo, um imageView dentro da atividade, basta adicionar o ID dessa visão que você deseja obter:
Espero que isso ajude alguém
fonte
findViewById(R.id.imageView1);
a atividade se desejar a visualização específica.anyview.getRootView();
será a maneira mais fácil.fonte
Solução de extensão Kotlin
Use isso para simplificar o acesso em uma atividade. Em seguida, você pode consultar diretamente a
rootView
partir da atividade ouactivity.rootView
fora dela:Se você deseja adicionar o mesmo para Fragmentos para obter consistência, adicione:
fonte
para obter a visualização da atividade atual
em qualquer onClick, obteremos "View view", usando 'view' get the rootView.
Visualizar visualização = view.getRootView ();
e para obter View in fragment
Visualizar visualização = FragmentClass.getView ();
fonte
se você estiver em uma atividade, suponha que exista apenas uma visualização raiz, é possível obtê-la assim.
então você pode transmiti-lo para sua classe real
ou você poderia usar
observe que isso incluirá a visualização da barra de ação, sua visualização está abaixo da visualização da barra de ação
fonte
Activity
aula.Para aqueles que estão usando a Biblioteca de Ligação de Dados , para obter a raiz da atividade atual, basta usar:
E para os usuários do Kotlin, é ainda mais simples:
fonte
Outra solução de extensão Kotlin
Se a visualização da sua atividade for declarada em xml (ex
activity_root.xml
), abra o xml e atribua um ID à visualização raiz:Agora em sua classe, importe a visualização usando:
Agora você pode usar
root_activity
como a exibição.fonte