实例化View方式与把布局文件加载到自定义View中的方式

1. 说明


在项目开发的过程中,我们有时候需要去实例化布局文件,如果是在自定义View中,有时候需要把该自定义View的布局文件添加到该自定义View中,对于这两种情况我们一般有如下的处理方式:

1.1 实例化布局有3种方式

使用场景如下:
比如在ListView或者RecyclerView的adapter中、在给ListView添加头布局时候等等,都需要去实例化View;而且如果是在自定义View中,并且如果控件该自定义View的布局文件是组合控件,我们一般做法就是:

        // 方式一
        View.inflate(mContext , mLayoutId , null) ;
        // 方式二
        LayoutInflater.from(mContext).inflate(mLayoutId , parent) ;
        // 方式三
        LayoutInflater.from(mContext).inflate(mLayoutId , parent , false) ;

我们一般都是用第三种方式,我们分析源码之后就会知道,我们一般都是去用第三种的

1.2 将自定义View的布局文件添加到该自定义View中

使用场景如下:
比如我们之前写的58同城数据加载效果的实现,我们是自定义一个 LoadingView,而它的布局我们分析后它是一个组合控件,我们自己创建ui_loading_view.xml文件,然后我们就将该 布局文件动态添加到该 自定义View中, 动态添加布局文件到 自定义View中有2种实现方式:

第一种:
View loadView = inflate(getContext(),R.layout.ui_loading_view ,null);
addView(loadView) ;
第二种:
inflate(getContext(),R.layout.ui_loading_view ,this);
此处的this就表示 把ui_loading_view加载到 LoadingView中
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,388评论 25 708
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,535评论 0 17
  • 【Android 自定义View】 [TOC] 自定义View基础 接触到一个类,你不太了解他,如果贸然翻阅源码只...
    Rtia阅读 3,994评论 1 14
  • OS X总算改名为MacOS了,这样苹果的几个OS名字总算统一起来,我们也不用老是说OS X这个绕口的名字了。并且...
    老乔理查德阅读 647评论 0 1
  • 今天力硕妈妈不在中午我炒了两个菜,两个宝贝都喜欢吃米饭,我做了米饭,也可能是对两孩子的胃口,我在炒菜的时候力硕跑...
    建波_e82d阅读 231评论 0 0