我是新的android开发和不断遇到引用膨胀视图从一个布局xml文件。我在谷歌上搜索了开发指南,但仍然不能理解它的意思。如果有人能提供一个非常简单的例子,我将不胜感激。
当前回答
膨胀是在运行时向活动添加视图(.xml)的过程。当我们创建一个listView时,我们动态地膨胀它的每个项。如果我们想创建一个包含多个视图的ViewGroup,比如buttons和textview,我们可以这样创建:
Button but = new Button();
but.setText ="button text";
but.background ...
but.leftDrawable.. and so on...
TextView txt = new TextView();
txt.setText ="button text";
txt.background ... and so on...
然后我们必须创建一个布局,我们可以添加上面的视图:
RelativeLayout rel = new RelativeLayout();
rel.addView(but);
现在,如果我们想在右下角添加一个按钮和在底部添加一个textview,我们必须做很多工作。首先实例化视图属性,然后应用多个约束。这很耗费时间。
Android让我们可以很容易地创建一个简单的.xml,并在xml中设计它的样式和属性,然后在任何我们需要它的地方简单地膨胀它,而不用痛苦地通过编程设置约束。
LayoutInflater inflater =
(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View menuLayout = inflater.inflate(R.layout.your_menu_layout, mainLayout, true);
//now add menuLayout to wherever you want to add like
(RelativeLayout)findViewById(R.id.relative).addView(menuLayout);
其他回答
在iOS UIKit宇宙中,这意味着获得对. xib(这是XML,就像android)文件的引用,并将其添加到当前ViewController的视图层次结构中。
我认为这里“膨胀一个视图”意味着获取layout.xml文件,绘制在该xml文件中指定的视图,并用创建的视图填充(=膨胀)父viewGroup。
膨胀是在运行时向活动添加视图(.xml)的过程。当我们创建一个listView时,我们动态地膨胀它的每个项。如果我们想创建一个包含多个视图的ViewGroup,比如buttons和textview,我们可以这样创建:
Button but = new Button();
but.setText ="button text";
but.background ...
but.leftDrawable.. and so on...
TextView txt = new TextView();
txt.setText ="button text";
txt.background ... and so on...
然后我们必须创建一个布局,我们可以添加上面的视图:
RelativeLayout rel = new RelativeLayout();
rel.addView(but);
现在,如果我们想在右下角添加一个按钮和在底部添加一个textview,我们必须做很多工作。首先实例化视图属性,然后应用多个约束。这很耗费时间。
Android让我们可以很容易地创建一个简单的.xml,并在xml中设计它的样式和属性,然后在任何我们需要它的地方简单地膨胀它,而不用痛苦地通过编程设置约束。
LayoutInflater inflater =
(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View menuLayout = inflater.inflate(R.layout.your_menu_layout, mainLayout, true);
//now add menuLayout to wherever you want to add like
(RelativeLayout)findViewById(R.id.relative).addView(menuLayout);
膨胀的外行定义可能是将XML代码转换为Java代码。只是一种理解的方式,例如,如果我们在XML中有一个标签,操作系统必须在内存中创建一个相应的Java对象,因此inflater读取XML标签,并在Java中创建相应的对象。
因为我们将UI转换为XML,而视图对象是我们要显示的所以我们需要将XML转换为视图对象膨胀意味着我们要将XML转换为视图对象这样它才能显示,为此我们需要一个名为layout inflator service的服务给它一个XML,它就会为你进行转换。
推荐文章
- Manifest合并失败:uses-sdk:minSdkVersion 14
- 为什么Android工作室说“等待调试器”如果我不调试?
- 如何检查我的EditText字段是否为空?
- Android从图库中选择图像
- 后台任务,进度对话框,方向改变-有任何100%工作的解决方案吗?
- Android:垂直对齐多行EditText(文本区域)
- Android无尽列表
- Android room persistent: AppDatabase_Impl不存在
- 错误:执行失败的任务':app:compileDebugKotlin'。>编译错误。详细信息请参见日志
- 在Android中使用URI生成器或使用变量创建URL
- 缩放图像以填充ImageView宽度并保持纵横比
- 列表视图的自定义适配器
- 在Android中设置TextView span的颜色
- 如何以编程方式在RelativeLayout中布局视图?
- Android Facebook集成无效键散列