美文网首页
提升布局文件性能

提升布局文件性能

作者: 禅与发现的乐趣 | 来源:发表于2018-05-23 15:41 被阅读16次

用include标签重用layout

像每个activity都会有title,我们可以定义一个xml表示标题的布局文件,然后在每个activity的布局文件中引入进来,这样就达到了标题栏的复用。

还有一个比较典型的用法是,很多activity页面刚进入的时候需要网络获取数据,这个时候比较好的体验是能有一个progressbar,等数据加载出来了,progressbar再隐藏。而这个progressbar布局也可以用include标签引入进来。

使用merge标签

merge标签算是include标签的一种用法,我们在使用include标签的时候,会将include的布局整个引入进来,但是有一种场景,比如外面的布局是linearlayout,引入的布局的根布局也是linearlayout,这样就多了一层linearlayout,增加了布局的层数,性能优化的考虑,应该去掉引入的布局的外层linearlayout,这个时候就可以使用merge标签,merge标签在引入的时候会自动忽略掉。

使用ViewStub按需载入视图

有些时候,我们需要一些很复杂的视图但是却很少用到。我们我们能在它需要的时候再载入,这样可以减少内存的使用并且给用户带来流畅的体验。

ViewStub是一个轻量级的view,没有占用空间,没有花费draw的资源,有没有参与到任何一个layout的计算与绘制里面。

每一个ViewStub简单的包含一个android:layout的属性来指定待创建的布局文件。

<ViewStub
        android:id="@+id/stub_import"
        android:inflatedId="@+id/panel_import"
        android:layout="@layout/progress_overlay"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom" />

当需要载入ViewStub中定义的布局时,可以使用如下方式:

((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);
 // or
 View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();

这样,ViewStub的层级就会消失,被创建出来的布局所替代,这个布局的ID就是ViewStub里面用android:inflatedId属性所定义的。

invisible gone viewstub的区别

  • invisible
    view在layout布局中会占用位置,但是view不可见,view还是会创建对象,会被初始化,会占用资源。

  • gone
    view在layout布局中不占用位置,但是view还是会创建对象,会被初始化,会占用资源

  • viewstub
    轻量级的view,不可见,不占用资源

相关文章

  • 提升布局文件性能

    用include标签重用layout 像每个activity都会有title,我们可以定义一个xml表示标题的布局...

  • Android 界面与导航学习笔记

    布局 使用ConstraintLayout构建布局,减少层级,渲染性能提升 使用RecyclerView创建列表R...

  • Android 布局性能优化

    布局的性能优化之所以重要,因为以下两个方面: (1)布局文件是一个xml文件,inflate布局文件其实就是解析x...

  • Android性能优化

    布局优化 1.尽量减少布局文件的层级2.有选择的使用性能较低的布局(LinearLayout,FrameLayou...

  • Android 性能优化 相关

    一 布局优化 核心思想:减少布局文件层级布局层级减少 -> 绘制工作量减少 ->性能提高 删除布局中无用控件和层级...

  • Android 优化

    一. 布局优化 核心思想:减少布局文件层级布局层级减少 -> 绘制工作量减少 ->性能提高 删除布局中无用控件和层...

  • 用这三个方法手把手带你了解何为 Android 性能优化?

    Android 性能优化的三个方法 布局优化 布局优化的思想很简单,就是尽量减少布局文件的层级,布局中的层级少了,...

  • Android 性能优化的方法

    一、布局优化 1、尽量减少布局文件的层级。 2、删除布局中无用的控件和层级、 3、有选择的使用性能...

  • Texture布局文档

    Layout 布局  ASDK有一套自己的成熟的的布局方案,最大的好处是提升性能,这套布局主要借鉴了CSS的Fle...

  • 安卓app性能优化

    1、布局优化 1)尽量减少布局文件的层级,有选择的使用性能较低的ViewGroup,比如LinearLayout...

网友评论

      本文标题:提升布局文件性能

      本文链接:https://www.haomeiwen.com/subject/zcirjftx.html