我是新的android开发和不断遇到引用膨胀视图从一个布局xml文件。我在谷歌上搜索了开发指南,但仍然不能理解它的意思。如果有人能提供一个非常简单的例子,我将不胜感激。
当前回答
在iOS UIKit宇宙中,这意味着获得对. xib(这是XML,就像android)文件的引用,并将其添加到当前ViewController的视图层次结构中。
其他回答
“膨胀”视图意味着获取布局XML并对其进行解析,以根据其中指定的元素及其属性创建视图和视图组对象,然后将这些视图和视图组的层次结构添加到父viewgroup中。当调用setContentView()时,它会将读取XML时创建的视图附加到活动中。您还可以使用LayoutInflater将视图添加到另一个ViewGroup,这在很多情况下都是一个有用的工具。
膨胀的外行定义可能是将XML代码转换为Java代码。只是一种理解的方式,例如,如果我们在XML中有一个标签,操作系统必须在内存中创建一个相应的Java对象,因此inflater读取XML标签,并在Java中创建相应的对象。
我认为这里“膨胀一个视图”意味着获取layout.xml文件,绘制在该xml文件中指定的视图,并用创建的视图填充(=膨胀)父viewGroup。
在iOS UIKit宇宙中,这意味着获得对. xib(这是XML,就像android)文件的引用,并将其添加到当前ViewController的视图层次结构中。
当你写一个XML布局时,它会被Android OS膨胀,这意味着它会通过在内存中创建视图对象来呈现。让我们称之为隐性膨胀(操作系统将为您膨胀视图)。例如:
class Name extends Activity{
public void onCreate(){
// the OS will inflate the your_layout.xml
// file and use it for this activity
setContentView(R.layout.your_layout);
}
}
您还可以使用LayoutInflater显式地膨胀视图。在这种情况下,你必须:
获取LayoutInflater的一个实例 指定要膨胀的XML 使用返回的视图 设置带有返回视图的内容视图(如上所示)
例如:
LayoutInflater inflater = LayoutInflater.from(YourActivity.this); // 1
View theInflatedView = inflater.inflate(R.layout.your_layout, null); // 2 and 3
setContentView(theInflatedView) // 4
推荐文章
- 在android中从上下文获取活动
- 无法解析主机"<URL here>"没有与主机名关联的地址
- getActivity()在Fragment函数中返回null
- 按钮背景是透明的
- 在Mac OS X上哪里安装Android SDK ?
- 我如何获得图像缩放功能?
- 在Android应用程序中显示当前时间和日期
- BottomSheetDialogFragment的圆角
- 在应用程序启动时出现“无法获得BatchedBridge,请确保您的bundle被正确打包”的错误
- 我如何改变默认对话框按钮的文本颜色在安卓5
- 更改单选按钮的圆圈颜色
- 如何在android中复制一个文件?
- adb找不到我的设备/手机(MacOS X)
- 如何在新的材质主题中改变背面箭头的颜色?
- androidviewpager与底部点