从xml文件中膨胀视图是什么意思?
我是新来的android开发,并不断从跨布局xml文件的膨胀视图引用。 我search了search开发指南,但仍然无法理解它的含义。 如果有人能提供一个非常简单的例子,那将是非常感激的。
当你编写一个XML布局时,它会被Android OS 夸大 ,这基本上意味着它将通过在内存中创build视图对象来呈现。 我们称之为隐含的通货膨胀 (操作系统将为您夸大观点)。 例如:
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
- 使用返回的
View
例如:
LayoutInflater inflater = LayoutInflater.from(YourActivity.this); // 1 View theInflatedView = inflater.inflate(R.layout.your_layout, null); // 2 and 3
“膨胀”视图意味着采用布局XML并对其进行parsing,以根据其中指定的元素及其属性创build视图和视图组对象,然后将这些视图和视图组的层次结构添加到父视图组。 当您调用setContentView()时,它将从读取XML创build的视图附加到活动。 您还可以使用LayoutInflater将视图添加到另一个ViewGroup,在许多情况下这可能是一个有用的工具。
膨胀是在运行时添加视图(.xml)到活动的过程。 当我们创build一个listView时,我们dynamic地给它的每个项目充气。 如果我们想创build一个包含多个视图(如button和文本视图)的ViewGroup。 我们可以像创build它
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...
然后我们必须创build一个布局,我们可以添加上面的视图
RelativeLayout rel = new RelativeLayout(); rel.addView(but);
现在,如果我们想在右下angular添加button,并在底部添加textview。 我们必须做很多工作。 首先是视图属性,其次我们必须应用多个约束。 这是一个艰难和耗时的工作。
Android使我们可以轻松地创build一个简单的.xml,并在xml中devise它的样式和属性,只需简单地将它膨胀到需要的地方,而不需要设置约束和编程设置的混淆。
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);
我认为在这里“膨胀视图”意味着获取layout.xml文件绘制该XML文件中指定的视图,并使用创build的视图对父viewGroup进行POPULATING(=膨胀)。
因为我们把UI变成XML,但是视图对象就是我们显示的,所以我们需要把xml转换成视图对象,所以我们把xml转换成视图对象,这样就可以显示出来,为此我们需要一个名为布局的气体发生器服务并给它一个XML,它会被转换为你。
- Android,沿着path移动位图?
- 在android webview(android 4.4,kitkat)中inputHTML文件
- 在com.android.build.gradle.internal.api.ApplicationVariantImpl找不到属性'outputFile'
- parsingAndroid上的查询string
- configurationAndroid Web应用程序
- Base 64编码和解码示例代码
- 如何在android的linearlayout周围显示阴影?
- 什么时候应该使用RxJava Observable,并在Android上进行简单的callback?
- 在TextView或WebView中突出显示文本