初级问题
LayoutInflater用于什么场合啊?
看sdk是这样解释的:
This class is used to instantiate layout XML file into its corresponding View objects
也就是用视图对象来初始化布局的xml文件
但又看到说:
LayoutInflater inflate = (LayoutInflater) getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
layout1 = (LinearLayout)inflate.inflate(R.layout.main, null, null);
setContentView(layout1);
就相当于: setContentView(R.layout.main)
既然2个是一样的,那我还用LayoutInflater干什么
[解决办法]
拉界面有两种方式啊,一种是XML,一种是写代码
XML方式简单方便,而且直观,把界面和功能分开,代码也更清晰,
但是也有不好的地方 1.很简单就可以被反编译出来 2.不能动态改变 (暂时只发现这两个)
用XML拉出来的界面,代码完全可以实现,不过相对麻烦
[解决办法]
LS已经都说了,存在的目的就是用来UI和代码分离。
举例而言,假设界面上有一个按钮,那么你可以在代码里面只写上这个按钮的响应事件及后续处理。至于这个按钮放在哪里?可以完全由XML配置掉。这样改变UI就很方便。例如我想把按钮的图片从黄色换成蓝色,那就改改XML就可以了。
不过缺点也被说了,这样的话其实反编译就把你的layout搞定了。