Android:setContentView和LayoutInflater

use*_*180 6 android android-layout

setContentView和之间有什么区别LayoutInflater?那么我们inflater在定制toastsetContentView定制中使用的原因是什么alertbox

Rit*_*une 17

你以前需要了解一些事情,

Android,每个Activity都有一个ViewRoot,通常一个Window,附加到它.但是,a SurfaceView有自己的窗口.所以,如果一个Activity有一个SurfaceView它将有多个窗口.

此活动用于占据整个窗口的屏幕显示.视图附加到此窗口.每个窗口都有一个Surface和Surface用于Canvas在表面上绘制.视图附加的窗口拥有表面.

基本上ViewRoot负责收集和调度输入并View负责管理焦点/键事件,Canvas仅负责"绘图"操作使用onDraw().

setContentView(View)是一种专有的方法Activity.在内部,它调用 setContentView(View)Window.此方法将活动内容设置为显式视图.此视图直接放在活动的视图层次结构中.调用此函数"锁定"窗口的各种特征,从这一点开始,不能改变.因此它只被调用一次.

LayoutInflater用于将布局XML文件实例化为其对应的View对象.基本上,目的是根据需要在运行时创建视图对象.最好的例子是AdapterViews类似的ListView,Spinner其中根据记录的数量在运行时创建对应于单个记录的单个视图对象.

在情况下Toast,LayoutInflater如果要动态地改变子视图,则使用,例如.在运行时更改图像.如果不对子视图进行任何更改,那么简单setView(View)的toast就足以设置toast的布局视图.

一样Toast是用AlertDialog,如果你仔细观察.

希望它能帮到你.


Zus*_*kin 1

setContentView ()一般用于加载一个activity。inflate只是Layout形成一个view类对象,如果需要的话,再setContentView(view)。一般Activity通过setContentView ()界面显示出来,但是如何控制布局设置为在非Activity中操作,这就需要LayoutInflater动态加载。例如,当您使用微调器的适配器类时,您可能必须使用LayoutInflater.