gpt4 book ai didi

安卓:setContentView 和 LayoutInflater

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:48 24 4
gpt4 key购买 nike

setContentViewLayoutInflater 有什么区别?我们在自定义 toast 中使用 inflater 和在自定义 alertbox 中使用 setContentView 的原因是什么?

最佳答案

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

Android 中,每个 Activity 都有一个 ViewRoot 并且通常是一个 Window ,附加到它。但是,SurfaceView 有自己的窗口。因此,如果 Activity 有一个 SurfaceView,它将有多个 Window。

这个activity用于屏幕显示占据整个Window。 View 附加到此窗口。每个窗口都有一个表面,表面使用 Canvas 在表面上绘制。 View 附加到的窗口拥有表面。

基本上ViewRoot负责收集和调度输入,View负责管理焦点/按键事件,Canvas只负责使用 onDraw() 进行“绘图”操作。

setContentView(View)Activity 独有的方法。它在内部调用 WindowsetContentView(View)。此方法将 Activity 内容设置为显式 View 。该 View 直接放置在 Activity 的 View 层次结构中。调用此函数会“锁定”窗口的各种特性,从此时起,这些特性将无法更改。因此它只被调用一次。

LayoutInflater 用于将布局 XML 文件实例化为其对应的 View 对象。基本上,目的是根据需要在运行时创建 View 对象。最好的例子是 AdapterViews,例如 ListViewSpinner 等,在运行时根据数量创建对应于单个记录的单个 View 对象的记录。

Toast 的情况下,如果要动态更改 subview ,则使用 LayoutInflater,例如。在运行时更改图像。如果不对 subview 进行更改,则只需 setView(View) toast 就足以设置 toast 的布局 View 。

如果您仔细观察,ToastAlertDialog 相同。

希望对你有帮助。

关于安卓:setContentView 和 LayoutInflater,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22903033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com