1. 一个界面xml布局文件应仅inflate一次即可

来源:互联网 发布:linux权限不够 编辑:程序博客网 时间:2024/05/16 12:52

一个界面xml布局文件仅仅inflate一次即可,然后将这个实例保存起来,如果inflate两次,在发现问题根源之前,可能会出现一些极为怪异的问题。比如:

LayoutInflater inflater = getLayoutInflater();viewList.add(inflater.inflate(R.layout.default_view, null));viewList.add(inflater.inflate(R.layout.musiclist_view, null));viewList.add(inflater.inflate(R.layout.networkmusic_view, null));

在这里实例化了3个布局文件,作为ViewPager切换时的布局。如果想获取这些布局的实例,应直接用保存在viewList里面的实例,而不是再次inflate一个出来,否则,如果你在第二次inflate出来的布局文件上寻找某一个控件,然后设置控件的值,然后更新界面,你会发现界面根本就没反应,因为那个控件根本就不是属于第一个布局文件的实例的。

View view = viewList.get(1); //View view = getLayoutInflater().inflate(R.layout.musiclist_view, null);myList  = (ExpandableListView)view.findViewById(R.id.myList);mvp_list = musicService.getMusicList();myListAdapter = new MyListItemAdapter(mvp_list);myList.setAdapter(myListAdapter);


这样才是正确的做法。注释的是错误的做法。

完毕。

原创粉丝点击