Most visited

Recently visited

Added in API level 1

LayoutInflater

public abstract class LayoutInflater
extends Object

java.lang.Object
   ↳ android.view.LayoutInflater


将布局XML文件实例化为其对应的View对象。 它从不直接使用。 而应使用getLayoutInflater()getSystemService(Class ) 来检索标准LayoutInflater实例,该实例已连接到当前上下文,并且正在为正在运行的设备配置该实例。 例如:

LayoutInflater inflater = (LayoutInflater)context.getSystemService
      (Context.LAYOUT_INFLATER_SERVICE);

要为您自己的视图创建一个具有额外 LayoutInflater.Factory的新LayoutInflater,您可以使用 cloneInContext(Context)复制现有的ViewFactory,然后调用 setFactory(LayoutInflater.Factory)以包含您的Factory。

出于性能原因,查看通胀严重依赖于在构建时完成的XML文件的预处理。 因此,目前不可能在运行时使用带有XmlPullParser的LayoutInflater而不是普通的XML文件; 它仅适用于从编译资源返回的XmlPullParser(R. something文件)。

也可以看看:

Summary

Nested classes

interface LayoutInflater.Factory

 

interface LayoutInflater.Factory2

 

interface LayoutInflater.Filter

挂钩以允许LayoutInflater的客户端限制允许被夸大的视图集合。

Protected constructors

LayoutInflater(Context context)

创建一个与特定上下文关联的新的LayoutInflater实例。

LayoutInflater(LayoutInflater original, Context newContext)

创建一个新的LayoutInflater实例,该实例是现有LayoutInflater的副本,并且可以更改其上下文。

Public methods

abstract LayoutInflater cloneInContext(Context newContext)

创建现有LayoutInflater对象的副本,副本指向与原始不同的上下文。

final View createView(String name, String prefix, AttributeSet attrs)

用于按名称实例化视图的低级函数。

static LayoutInflater from(Context context)

从给定的上下文中获取LayoutInflater。

Context getContext()

返回我们正在运行的上下文,以访问资源,类加载器等。

final LayoutInflater.Factory getFactory()

返回当前 LayoutInflater.Factory (或null)。

final LayoutInflater.Factory2 getFactory2()

返回当前 LayoutInflater.Factory2

LayoutInflater.Filter getFilter()
View inflate(int resource, ViewGroup root)

从指定的xml资源中扩充新的视图层次结构。

View inflate(XmlPullParser parser, ViewGroup root)

从指定的xml节点膨胀新的视图层次结构。

View inflate(XmlPullParser parser, ViewGroup root, boolean attachToRoot)

从指定的XML节点扩充新的视图层次结构。

View inflate(int resource, ViewGroup root, boolean attachToRoot)

从指定的xml资源中扩充新的视图层次结构。

void setFactory(LayoutInflater.Factory factory)

在使用此LayoutInflater时附加一个自定义工厂界面以创建视图。

void setFactory2(LayoutInflater.Factory2 factory)

setFactory(LayoutInflater.Factory)一样,但允许您设置 LayoutInflater.Factory2接口。

void setFilter(LayoutInflater.Filter filter)

设置 LayoutInflater.Filter这个LayoutInflater来。

Protected methods

View onCreateView(View parent, String name, AttributeSet attrs)

版本 onCreateView(String, AttributeSet)也需要构建视图的未来父项。

View onCreateView(String name, AttributeSet attrs)

此例程负责根据xml元素名称创建View的正确子类。

Inherited methods

From class java.lang.Object

Protected constructors

LayoutInflater

Added in API level 1
LayoutInflater (Context context)

创建一个与特定上下文关联的新的LayoutInflater实例。 应用程序几乎总是希望使用Context.getSystemService()来检索标准Context.INFLATER_SERVICE

Parameters
context Context: The Context in which this LayoutInflater will create its Views; most importantly, this supplies the theme from which the default values for their attributes are retrieved.

LayoutInflater

Added in API level 1
LayoutInflater (LayoutInflater original, 
                Context newContext)

创建一个新的LayoutInflater实例,该实例是现有LayoutInflater的副本,并且可以更改其上下文。 用于实施cloneInContext(Context)

Parameters
original LayoutInflater: The original LayoutInflater to copy.
newContext Context: The new Context to use.

Public methods

cloneInContext

Added in API level 1
LayoutInflater cloneInContext (Context newContext)

创建现有LayoutInflater对象的副本,副本指向与原始不同的上下文。 这被ContextThemeWrapper用来创建一个新的LayoutInflater以配合新的Context主题。

Parameters
newContext Context: The new Context to associate with the new LayoutInflater. May be the same as the original Context if desired.
Returns
LayoutInflater Returns a brand spanking new LayoutInflater object associated with the given Context.

createView

Added in API level 1
View createView (String name, 
                String prefix, 
                AttributeSet attrs)

用于按名称实例化视图的低级函数。 这将尝试实例化在此LayoutInflater的ClassLoader中找到的给定名称的视图类。

在错误情况下可能发生两件事情:描述错误的异常将被抛出,或者返回null。 你必须处理两种可能性 - 前者会在第一次发生createView()时被调用某个特定名称的类,后者每次都会为该类名称调用。

Parameters
name String: The full name of the class to be instantiated.
prefix String
attrs AttributeSet: The XML attributes supplied for this instance.
Returns
View View The newly instantiated view, or null.
Throws
ClassNotFoundException
InflateException

from

Added in API level 1
LayoutInflater from (Context context)

从给定的上下文中获取LayoutInflater。

Parameters
context Context
Returns
LayoutInflater

getContext

Added in API level 1
Context getContext ()

返回我们正在运行的上下文,以访问资源,类加载器等。

Returns
Context

getFactory

Added in API level 1
LayoutInflater.Factory getFactory ()

返回当前的LayoutInflater.Factory (或null)。 这在每个元素名称上被调用。 如果工厂返回一个View,将其添加到层次结构中。 如果它返回null,则继续调用onCreateView(name)。

Returns
LayoutInflater.Factory

getFactory2

Added in API level 11
LayoutInflater.Factory2 getFactory2 ()

返回当前LayoutInflater.Factory2 如果没有设置工厂或者工厂没有实现LayoutInflater.Factory2接口,则返回null。 这在每个元素名称上被调用。 如果工厂返回一个View,将其添加到层次结构中。 如果它返回null,则继续调用onCreateView(name)。

Returns
LayoutInflater.Factory2

getFilter

Added in API level 1
LayoutInflater.Filter getFilter ()

Returns
LayoutInflater.Filter The LayoutInflater.Filter currently used by this LayoutInflater to restrict the set of Views that are allowed to be inflated.

inflate

Added in API level 1
View inflate (int resource, 
                ViewGroup root)

从指定的xml资源中扩充新的视图层次结构。 如果有错误,则抛出InflateException

Parameters
resource int: ID for an XML layout resource to load (e.g., R.layout.main_page)
root ViewGroup: Optional view to be the parent of the generated hierarchy.
Returns
View The root View of the inflated hierarchy. If root was supplied, this is the root View; otherwise it is the root of the inflated XML file.

inflate

Added in API level 1
View inflate (XmlPullParser parser, 
                ViewGroup root)

从指定的xml节点膨胀新的视图层次结构。 如果出现错误,则抛出InflateException *

重要由于性能方面的原因,查看通货膨胀严重依赖于在构建时完成的XML文件的预处理。 因此,在运行时,通过普通的XML文件使用LayoutInflater和XmlPullParser是不可能的。

Parameters
parser XmlPullParser: XML dom node containing the description of the view hierarchy.
root ViewGroup: Optional view to be the parent of the generated hierarchy.
Returns
View The root View of the inflated hierarchy. If root was supplied, this is the root View; otherwise it is the root of the inflated XML file.

inflate

Added in API level 1
View inflate (XmlPullParser parser, 
                ViewGroup root, 
                boolean attachToRoot)

从指定的XML节点扩充新的视图层次结构。 如果有错误,则抛出InflateException

重要由于性能方面的原因,查看通货膨胀严重依赖于在构建时完成的XML文件的预处理。 因此,在运行时,通过普通的XML文件使用LayoutInflater和XmlPullParser是不可能的。

Parameters
parser XmlPullParser: XML dom node containing the description of the view hierarchy.
root ViewGroup: Optional view to be the parent of the generated hierarchy (if attachToRoot is true), or else simply an object that provides a set of LayoutParams values for root of the returned hierarchy (if attachToRoot is false.)
attachToRoot boolean: Whether the inflated hierarchy should be attached to the root parameter? If false, root is only used to create the correct subclass of LayoutParams for the root view in the XML.
Returns
View The root View of the inflated hierarchy. If root was supplied and attachToRoot is true, this is root; otherwise it is the root of the inflated XML file.

inflate

Added in API level 1
View inflate (int resource, 
                ViewGroup root, 
                boolean attachToRoot)

从指定的xml资源中扩充新的视图层次结构。 如果有错误,则抛出InflateException

Parameters
resource int: ID for an XML layout resource to load (e.g., R.layout.main_page)
root ViewGroup: Optional view to be the parent of the generated hierarchy (if attachToRoot is true), or else simply an object that provides a set of LayoutParams values for root of the returned hierarchy (if attachToRoot is false.)
attachToRoot boolean: Whether the inflated hierarchy should be attached to the root parameter? If false, root is only used to create the correct subclass of LayoutParams for the root view in the XML.
Returns
View The root View of the inflated hierarchy. If root was supplied and attachToRoot is true, this is root; otherwise it is the root of the inflated XML file.

setFactory

Added in API level 1
void setFactory (LayoutInflater.Factory factory)

在使用此LayoutInflater时附加一个自定义工厂界面以创建视图。 这不能为空,只能设置一次; 设置后,您不能更改工厂。 这在每个元素名称被称为xml解析。 如果工厂返回一个视图,该视图被添加到层次结构中。 如果它返回null,则调用下一个出厂默认方法onCreateView(View, String, AttributeSet)

如果您有一个现有的LayoutInflater并想将自己的工厂添加到它,请使用cloneInContext(Context)克隆现有实例,然后可以在返回的新实例上使用此函数(一次)。 这会将您自己的工厂与原始实例使用的任何工厂合并。

Parameters
factory LayoutInflater.Factory

setFactory2

Added in API level 11
void setFactory2 (LayoutInflater.Factory2 factory)

setFactory(LayoutInflater.Factory)一样,但允许您设置 LayoutInflater.Factory2界面。

Parameters
factory LayoutInflater.Factory2

setFilter

Added in API level 1
void setFilter (LayoutInflater.Filter filter)

通过此LayoutInflater将LayoutInflater.Filter设置为。 如果一个视图试图被夸大,这是LayoutInflater.Filter不允许的,那么inflate(int, ViewGroup)调用将会抛出InflateException 此过滤器将替换此LayoutInflater上设置的任何以前的过滤器。

Parameters
filter LayoutInflater.Filter: The Filter which restricts the set of Views that are allowed to be inflated. This filter will replace any previous filter set on this LayoutInflater.

Protected methods

onCreateView

Added in API level 11
View onCreateView (View parent, 
                String name, 
                AttributeSet attrs)

版本onCreateView(String, AttributeSet)也需要构建视图的未来父项。 默认实现只需调用onCreateView(String, AttributeSet)

Parameters
parent View: The future parent of the returned view. Note that this may be null.
name String: The fully qualified class name of the View to be create.
attrs AttributeSet: An AttributeSet of attributes to apply to the View.
Returns
View View The View created.
Throws
ClassNotFoundException

onCreateView

Added in API level 1
View onCreateView (String name, 
                AttributeSet attrs)

此例程负责根据xml元素名称创建View的正确子类。 重写它来处理自定义视图对象。 如果你在你的子类中覆盖它,一定要通过super.onCreateView(name)调用你不认识的名字。

Parameters
name String: The fully qualified class name of the View to be create.
attrs AttributeSet: An AttributeSet of attributes to apply to the View.
Returns
View View The View created.
Throws
ClassNotFoundException

Hooray!