Biblioteca Data Binding Parte do Android Jetpack.
A Data Binding Library é uma biblioteca de suporte que permite vincular a interface componentes nos seus layouts para fontes de dados no seu app usando uma no formato certo, em vez de programaticamente.
Os layouts geralmente são definidos em atividades com código que chama a estrutura da interface.
métodos. Por exemplo, o código abaixo chama findViewById()
para encontrar um widget TextView
e vinculá-lo à propriedade userName
do
Variável viewModel
:
Kotlin
findViewById<TextView>(R.id.sample_text).apply { text = viewModel.userName }
Java
TextView textView = findViewById(R.id.sample_text); textView.setText(viewModel.getUserName());
O exemplo a seguir mostra como usar a Data Binding Library para atribuir texto
ao widget diretamente no arquivo de layout. Isso elimina a necessidade de chamar qualquer um
código Java mostrado acima. Observe o uso da sintaxe @{}
na atividade
expressão:
<TextView
android:text="@{viewmodel.userName}" />
A vinculação de componentes no arquivo de layout permite remover muitas chamadas de framework da IU no suas atividades, tornando-as mais simples e fáceis de manter. Isso também pode melhorar o desempenho do app e ajudar a evitar vazamentos de memória e ponteiros nulos exceções.
Como usar a Data Binding Library
Use as páginas a seguir para aprender a usar a Data Binding Library na sua Apps Android.
- Primeiros passos
- Saber como preparar seu ambiente de desenvolvimento para trabalhar com a API Data Binding Library, incluindo suporte para código de vinculação de dados no Android Studio.
Layouts e expressões de vinculação
A linguagem de expressões permite escrever expressões que conectam variáveis para as visualizações no layout. A biblioteca Data Binding automaticamente gera as classes necessárias para vincular as visualizações do layout aos seus dados. objetos. A biblioteca fornece recursos como importações, variáveis e inclui que você pode usar em seus layouts.
Esses recursos da biblioteca coexistem perfeitamente com os layouts já existentes.
Por exemplo, as variáveis de vinculação que podem ser usadas em expressões são definidas
em um elemento data
, que é irmão do elemento raiz do layout da interface.
Os dois elementos são unidos em uma tag layout
, conforme mostrado no exemplo a seguir
exemplo:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewmodel"
type="com.myapp.data.ViewModel" />
</data>
<ConstraintLayout... /> <!-- UI layout's root element -->
</layout>
- Trabalhar com objetos de dados observáveis
- A Data Binding Library fornece classes e métodos para observar facilmente os dados para alterações. Você não precisa se preocupar em atualizar a interface quando o mudanças na fonte de dados. É possível fazer com que suas variáveis ou e propriedades observáveis. A biblioteca permite criar objetos, campos ou coleções observáveis.
- Classes de vinculação geradas
- A Data Binding Library gera classes de vinculação que são usadas para acessar o variáveis e visualizações do layout. Esta página mostra como usar e personalizar classes de vinculação geradas.
- Adaptadores de vinculação
- Para cada expressão de layout, há um adaptador de vinculação que torna a
chamadas de framework necessárias para definir as propriedades ou os listeners correspondentes. Para
exemplo, o adaptador de vinculação pode chamar o método
setText()
para definir a propriedade de texto ou chame o métodosetOnClickListener()
para adicionar uma ao evento de clique. Os adaptadores de vinculação mais comuns, como o para a propriedadeandroid:text
usada nos exemplos desta página, estão disponíveis para uso no pacoteandroid.databinding.adapters
. Para conferir uma lista de adaptadores de vinculação comuns, consulte adaptadores. Também é possível criar adaptadores personalizados, conforme mostrado no exemplo a seguir:
Kotlin
@BindingAdapter("app:goneUnless") fun goneUnless(view: View, visible: Boolean) { view.visibility = if (visible) View.VISIBLE else View.GONE }
Java
@BindingAdapter("app:goneUnless") public static void goneUnless(View view, Boolean visible) { view.visibility = visible ? View.VISIBLE : View.GONE; }
- Vincular visualizações de layout a componentes de arquitetura
- A Biblioteca de Suporte do Android inclui a biblioteca Arquitetura componentes, que podem ser usados para criar apps robustos, testáveis e de fácil manutenção. É possível usar a biblioteca de Componentes com a biblioteca Data Binding para simplificar ainda mais o desenvolvimento da sua interface.
- Vinculação bidirecional de dados
- A Data Binding Library é compatível com a vinculação bidirecional de dados. A notação usada para esse tipo de vinculação permite receber mudanças de dados em uma propriedade e detectar as atualizações dos usuários na propriedade ao mesmo tempo.
Outros recursos
Para saber mais sobre a vinculação de dados, consulte as seguintes recursos extras.
Amostras
- Amostras da Android Data Binding Library (link em inglês)
Codelabs
Postagens do blog
- Android Data Binding Library: de campos observáveis a LiveData em dois passos (link em inglês)
- Vinculação de dados: lições aprendidas (link em inglês)
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Adaptadores de vinculação {:#binding-adapters}
- Layouts e expressões de vinculação
- Classes de vinculação geradas {: #binding-classes}