GridLayout和GridView的区别

Posted 安卓笔记侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GridLayout和GridView的区别相关的知识,希望对你有一定的参考价值。

GridView是一种适配器布局,它的继承关系是ViewGroup-->AdapterView-->AbsListView-->GridView,他是从一个adapter中取出内容填充到GridView中的每一个子View。

GridLayout是一个布局,它大大简化了对复杂布局的处理,提高了性能。他直接继承自ViewGroup,和LinearLayout这种是类似的。

我感觉GridView和GridLayout就和ListView和LinearLayout的区别类似。


那么什么时候用GridView什么时候用GridLayout呢?
类似九宫格这种可以采用GridView。但是像android系统自带的计算器的界面就不可能通过GridView实现,因为有些按键不一样大,如果使用GridLayout实现那就很简单了。

另外GridLayout比RelativeLayout更好用,例如:
一个登陆界面举例:登陆界面应该有登陆界面的标题、用户名和密码的label和输入框及确认登陆按钮,如果用相对布局实现肯定是可以实现的,需要相对布局里面控件与控件间的位置关系就复杂繁琐了。Android框架在将你定义的相对布局xml文件渲染给屏幕的时候,需要处理这么复杂的控件间的关系,肯定性能会受一定程度的影响。当然,用相对布局会比用多个线性布局嵌套性能要好一些。
但是,用GridLayout的话,渲染性能会比用相对布局好很多。因为GridLayout中的控件间的位置关系没那么复杂,就是指定将某个控件放到某行某列,占几行或占几列,布局xml写起来也非常简洁。
 

以上是关于GridLayout和GridView的区别的主要内容,如果未能解决你的问题,请参考以下文章

GridLayout(不是GridView)如何均匀拉伸所有孩子

QML - 如何适应和对齐 GridView 的项目?

如何从GridView或GridLayout中获取每个EditText中的每个值?

Android 布局之GridLayout

Gridview v7 对旧 api android.support.v7.widget.Gridlayout 的支持未能实例化

如何在`GridView`中启用显示突出显示