备注:
LayoutInflater主要用于对于不再一个layerout里面的空间添加到当前的界面中去
作用:
1、对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入.
2、对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法来获得其中的界面元素.
方法:
Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Activity基类, 然后在onCreate里面使用setContentView方法来载入一个在xml里定义好的界面.
其实在Activity里面就使用了LayoutInflater来载入界面, 通过getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法可以获得一个 LayoutInflater, 也可以通过LayoutInflater inflater = getLayoutInflater();来获得.然后使用inflate方法来载入layout的xml,
下面是一个简单的例子:
首先我们要知道,什么是已经被载入的layout,什么是还没有载入的.我们启动一个应用,与入口Activity相关的layout{常见的是main.xml}就是被载入的,即在Oncreate()中的.而其他的layout是没有被载入的.就要动态载入了或通过另一个activity.
在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),
不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件.
为了让大家容易理解我[转]做了一个简单的Demo,主布局main.xml里有一个TextView和一个Button,当点击Button,出现 Dialog,而这个Dialog的布局方式是我们在layout目录下定义的custom_dialog.xml文件(里面左右分布,左边 ImageView,右边TextView)。
LayoutInflater作用及使用
代码如下:
package com.bivin;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
private Button button;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
showCustomDialog();
}
public void showCustomDialog() {
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = MainActivity.this;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog, null);
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello, Welcome to Mr Wei's blog!");
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.icon);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
alertDialog.show();
}
}
原文:http://blog.sina.com.cn/s/blog_629b701e0100rg4d.html
- 大小: 11.4 KB
分享到:
相关推荐
在Android应用程序中,我们通常使用XML来定义用户界面的布局,而`LayoutInflater`则起到了桥梁的作用,将静态的XML布局文件转换成可交互的UI组件。 `LayoutInflater`的基本用法包括以下步骤: 1. **获取实例**:...
1. **LayoutInflater的作用**:将XML布局文件转换为视图对象,使得我们可以在运行时动态地创建和操作界面。 2. **使用方法**:通过`LayoutInflater.from(Context)`获取LayoutInflater实例,然后调用`inflate()`方法...
在本文中,我们将深入探讨`LayoutInflater`的使用及其重要性。 `LayoutInflater`的主要功能: 1. **实例化布局**: 与`findViewById()`不同,`LayoutInflater`是用来加载整个XML布局文件,而不是单个视图控件。通过`...
` 这是Activity提供的一个便捷方法,实际上也是调用了PhoneWindow的`getLayoutInflater()`,最终会转到`LayoutInflater.from(context)`。 2. `LayoutInflater inflater = LayoutInflater.from(context);` 这是最常见...
在本文中,我们将深入探讨使用LayoutInflater时需要注意的一些关键点,以避免潜在的问题和陷阱。 首先,理解LayoutInflater.inflate()方法的三个参数至关重要。这个方法通常用于动态加载XML布局并将其插入到视图...
例如,当你需要动态添加或者删除布局时,如在聊天应用中添加新的消息项,或者在设置界面中根据用户选择添加或移除选项,LayoutInflater就起到了核心作用。 综合运用这三个概念,可以实现高效且流畅的Android应用。...
`LayoutInflater`的作用就是将这些静态的XML布局转化为可以在屏幕上显示的动态视图对象。与`Activity`中的`findViewById()`方法不同,`LayoutInflater`不寻找具体的控件,而是解析整个布局文件并创建其中包含的所有...
`inflate()` 方法是`LayoutInflater` 的核心方法,它的作用是解析XML布局文件,并将其转换为Android视图层次结构。下面将详细阐述`inflate()` 方法的用法及其与其他方法的区别。 首先,`inflate()` 方法的基本使用...
1. **`LayoutInflater`的作用**: - `LayoutInflater`的主要功能是将XML布局文件转换为Android运行时可以操作的视图对象。这使得开发者可以在程序运行时动态地加载和插入布局,而不是在应用程序启动时一次性加载...
这篇博客“使用inflater实现窗体布局”将深入探讨如何使用`LayoutInflater`来实现这一功能。 `LayoutInflater`是Android SDK中的一个关键类,它位于`android.view.LayoutInflater`包中。它的主要作用是从XML布局...
Fragment有自己的`onCreateView()`方法,其中也需要使用`LayoutInflater`和`setContentView()`的变体`setView()`来加载布局。 此外,Android提供了多种动画机制,使得页面转换更加流畅和吸引人。通过设置进入和退出...
`LayoutInflater` 的作用在于动态地创建UI元素,使得开发者可以灵活地构建和更新界面。在"android LayouInflater 页面跳转 button点击"这个主题中,我们将深入探讨`LayoutInflater`的使用以及与页面跳转和按钮点击...
- 创建一个新的Java类,继承自Fragment类,并重写必要的方法,如onCreateView(),在此方法中使用LayoutInflater来创建布局。 - 在XML布局文件中定义碎片的UI结构,通常包含一个根布局,如LinearLayout、...
Android inflater 用法及不同点 Android inflater 是 Android 开发中的一种非常有用的工具类,类似于 findViewById()。它的主要作用是将 XML 布局文件实例化,并将其转换为 View 对象,以便在 Activity 中使用。 ...
在这个例子中,我们使用`LayoutInflater`的`inflate()`方法加载`item_button`布局,并将其添加到`ListView`的`parent`中,但不直接附加(`false`)。尽管如此,`Button`的宽高设置依然有效,因为它在解析时使用了`...
本文将深入探讨Fragment的简单使用及其在Android开发中的作用。 Fragment的基本概念: Fragment是一个可以嵌入到Activity中的UI部分,它有自己的生命周期和回调方法,如onCreate(), onCreateView(), onViewCreated...
本文将深入探讨如何使用自定义View实现一个仿小红书开屏动画,重点介绍平行动画的原理和实现方法,以及自定义容器和自定义LayoutInflater的应用。 首先,我们来看“平行动画”。平行动画是一种常见的视图动画效果,...
4. **替换系统`LayoutInflater`**:在应用的`Activity`或`Fragment`中,用自定义的`LayoutInflator`替换默认的`LayoutInflater`实例,确保后续的布局加载都会使用新的皮肤资源。 5. **刷新界面**:最后,调用`...