首页
互助圈
新手教程
进阶之路
算法原理
架构设计
JAVA进阶
C/C++进阶
Python进阶
JavaScript
数据库
大数据
消息服务
源码解读
JAVA源码
Spring源码
数据库
消息服务
Dubbo源码
面试指南
大厂专栏
面试技巧
面试经验
面试题库
开发资料
文档资料
工具软件
电子书籍
小牛导航
在线工具
登录
当前位置:
首页
>
工具软件
>
greedo-layout-for-android
>
使用案例
>
Android Layout Trick
房冥夜
2023-12-01
滥用LAYOUT会导致initialization, layout and drawing become slower.
如果你在嵌套几个linearlayout时用到weight参数,他要求孩子被测量俩次,这尤其昂贵的。
在一个listview中,你假设让他的ITEM显示出下列的一种格式。
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:layout_width
=
"fill_parent"
android:layout_height
=
"?android:attr/listPreferredItemHeight"
android:padding
=
"6dip"
>
<
ImageView
android:id
=
"@+id/icon"
android:layout_width
=
"wrap_content"
android:layout_height
=
"fill_parent"
android:layout_marginRight
=
"6dip"
android:src
=
"@drawable/icon"
/>
<
LinearLayout
android:orientation
=
"vertical"
android:layout_width
=
"0dip"
android:layout_weight
=
"1"
android:layout_height
=
"fill_parent"
>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"0dip"
android:layout_weight
=
"1"
android:gravity
=
"center_vertical"
android:text
=
"My Application"
/>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"0dip"
android:layout_weight
=
"1"
android:singleLine
=
"true"
android:ellipsize
=
"marquee"
android:text
=
"Simple application that shows how to use RelativeLayout"
/>
</
LinearLayout
>
</
LinearLayout
>
这个layout可以工作但是非常浪费,因为你对这个LISTVIEW的每一个list view都要实例化这么一大串。可以relativelayout重写。
<
RelativeLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:layout_width
=
"fill_parent"
android:layout_height
=
"?android:attr/listPreferredItemHeight"
android:padding
=
"6dip"
>
<
ImageView
android:id
=
"@+id/icon"
android:layout_width
=
"wrap_content"
android:layout_height
=
"fill_parent"
android:layout_alignParentTop
=
"true"
android:layout_alignParentBottom
=
"true"
android:layout_marginRight
=
"6dip"
android:src
=
"@drawable/icon"
/>
<
TextView
android:id
=
"@+id/secondLine"
android:layout_width
=
"fill_parent"
android:layout_height
=
"26dip"
android:layout_toRightOf
=
"@id/icon"
android:layout_alignParentBottom
=
"true"
android:layout_alignParentRight
=
"true"
android:singleLine
=
"true"
android:ellipsize
=
"marquee"
android:text
=
"Simple application that shows how to use RelativeLayout"
/>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:layout_toRightOf
=
"@id/icon"
android:layout_alignParentRight
=
"true"
android:layout_alignParentTop
=
"true"
android:layout_above
=
"@id/secondLine"
android:layout_alignWithParentIfMissing
=
"true"
android:gravity
=
"center_vertical"
android:text
=
"My Application"
/>
</
RelativeLayout
>
list item要显示的文字有俩行,如果其中一行不可见,application将简单的设置这个textview to GONE.
这个工作当用linealayout时表现很好,但是用relativelayout时则不行。
To solve this problem, you can use a very special layout parameter called
alignWithParentIfMissing
.
参考:http://www.curious-creature.org/2009/02/22/android-layout-tricks-1/
通过HierarchyViewer你可以看出俩中形式,第二个每次创建一个list item时都会少创建一linearlayout
类似资料:
相关阅读
相关文章
相关问答
快捷导航:
新手教程
算法原理
架构设计
Java进阶
数据库进阶
大厂专栏
面试经验
编程笔记
编程问答
所有专题
文档资料
工具软件
电子书籍
小牛导航
在线工具:
房贷计算器
个税计算器
Linux命令查询
Json格式化
正则表达式
颜色转换
AES加解密
SHA1加密
MD5加密
毒鸡汤
字数统计
随机密码生成
进制转换
Base64编解码
励志句子
Copyright © 2019-2024 小牛知识库@xnip.cn. All Rights Reserved.