返回介绍

3 主要方法预览

发布于 2024-12-23 22:04:07 字数 2330 浏览 0 评论 0 收藏 0

public static LayoutInflater from(Context context);

获取 LayoutInflater 实例化对象。

public void setFactory(Factory factory);

设置使用当前 LayoutInflater 创建 View 的自定义实例化工厂。通过设置自定义工厂,可以在系统实例化 View 的时候进行一些拦截操作,比如可以把本来的 TextView 拦截成 Button、给 TextView 统一指定字体等。

public void setFactory2(Factory2 factory);

同上,区别是工厂 2 多了对实例化 View 的时候 Parent 的支持。在 API 11 引入。

public void setFilter(Filter filter);

给当前 LayoutInflater 设置过滤器,如果要被填充的 View 不被这个过滤器允许,则会抛出 InflateException。这个过滤器会覆盖当前 LayoutInflater 之上的任何之前设置过的过滤器。

public View inflate(@LayoutRes int resource, @Nullable ViewGroup root);

把指定的布局资源填充成 View。如果 root 不为空则把填充的 View 添加到 root 上,如果 root 为空则不添加。

public View inflate(XmlPullParser parser, @Nullable ViewGroup root);

通过布局 xml 资源的解析器把布局资源填充成 View。如果 root 不为空则把填充的 View 添加到 root 上,如果 root 为空则不添加。

public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot);

把指定的布局资源填充成 View。如果 root 不为空并且 attachToRoot 为 true,则把填充的 View 添加到 root 上,否则不添加。

public View inflate(XmlPullParser parser, @Nullable ViewGroup root, boolean attachToRoot);

通过布局 xml 资源的解析器把布局资源填充成 View。如果 root 不为空并且 attachToRoot 为 true,则把填充的 View 添加到 root 上,否则不添加。

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

通过 View 的名称,前缀和 attrs 属性实例化 View。

protected View onCreateView(String name, AttributeSet attrs);

通过 View 的父 View,View 名称和 attrs 属性实例化 View(最终调用的是 createView(String name, String prefix, AttributeSet attrs); )。

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

通过 View 的父 View,View 名称、前缀和 attrs 属性实例化 View(最终调用的是 createView(String name, String prefix, AttributeSet attrs); )。

View createViewFromTag(View parent, String name,Context context, AttributeSet attrs);

通过 View 的父 View,View 的名称、attrs 属性实例化 View(内部调用 onCreateView()createView() )。

void rInflate(XmlPullParser parser, View parent, Context context, final AttributeSet attrs, boolean finishInflate);

解析 Parent 的子 View 并添加到 Parent 上(递归调用)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文