Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gavel94/AndroidDatabinding

Repository files navigation

AndroidDatabinding

这是Android的Data Binding的一个demo,Data Binding库的作用很强大,这里是最简单直观的体现,完全撇去烦恼的findViewById,让我们更加专注是代码的逻辑。

两种加载视图的方式

  • activity中ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);

  • 需要一个view视图

    • 在fragment中 在onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)中FragmentTestBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_test, container, false);通过binding.getRoot()返回一个view对象。

    • 从官方文档上可以看出来通过DataBindingUtil.inflate(LayoutInflater inflater, int layoutId, @Nullable ViewGroup parent, boolean attachToParent)需要一个布局加载器,通常我们可以通过LayoutInflater inflater = LayoutInflater.from(context);来获取到一个inflater对象,这里主要是针对我们使用listview或者popupWindow等需要一个视图对象来说的

Data Binding的命名规范

  • 默认情况下,一个Binding类会基于layout文件的名称而产生,将其转换为Pascal case(译注:首字母大写的命名规范)并且添加"Binding"后缀。上述的layout文件是activity_main.xml,因此生成的类名是ActivityMainBinding。

  • 假设你的activity_main.xml文件中有个控件的id是main_fl,那么获取这个控件的方式就是binding,mainFl,他在自动命名的时候会自动将你的下划线取消,并将后面一个字母大写

这个demo中还包含了一个recyclerview的公共适配器,有兴趣的朋友可以自己看一下。毕竟这里的主角是我们的Data Binding。

第一个版本是AS1.5版本的配置,需要添加测试。 九月二十六号更新,AS版本2.2,gradle版本2.2,此时使用databinding只需要开启就可以使用了

dataBinding { enabled true }

About

一个关于Data Binding的基本使用和recyclerview的通用适配器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /