ListView高度问题
来源:互联网 发布:工厂模式编写js 编辑:程序博客网 时间:2024/06/08 10:01
在item的layout文件中,用android:layout_height设置item的高度。
运行,高度设置无效。
解决办法:
给item设定minHeight,即可.
LayoutInflater概述
从XML文件中实例化一个布局成对应的View类, 它从来不会直接使用, 而是使用getLayoutInflater()或者getSystemService(String)来获得一个对应当前context的标准LayoutInflater 实例。
例如:
LayoutInflater inflater = (LayoutInflater)context.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
如果要在自己的views中通过LayoutInflater.Factory来创建LayoutInflater你可以用cloneInContext(Context)来克隆一个当前存在的ViewFactory然后再用setFactory(LayoutInfalter.FActory) 来设置成自己的FActory.
起因
原来在项目中一直习惯用inflater.inflate(R.layout.layout, null)最近却发现会有一个黄色的警告。 十分好奇,所以决定找出原因。
我们发现inflate方法有两个:
View inflate(int resource, ViewGroup root)
View inflate(int resource , ViewGroup root, boolean attachToRoot) 第二个参数是指实例的布局所要放入的根视图。
一般我们在不需要将该布局放入根视图的时候都会把第二个参数传为null,这样系统就不会去进行相应的绑定操作了,不然就蹦了。 我相信很多人都会这样理解,所以都很少用到 第二个方法, 其实这样是错误的。
原因在于android:layout_xyz属性会在父视图中重新计算,而你用第一个方法是说需要被添加到父视图中,只不过你不知道添加到哪一个父视图中, 所以你在xml中定义的LayoutParams 就会被忽略(因为没有已知的父视图)。
示例
大家肯定遇到过在ListView的item布局中设置的高度没有效果的问题。
如果用上面的代码会发现设置100dp是无效的。
而如果换成下面的代码就可以了。
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) { convertView = inflate(R.layout.item_lv_test, null, false);}return convertView;
}
这里你该会想一想为什么很多需要显示View的方法中都有ViewGroup这个参数。
所以有些人会说在跟布局中设置是无效的,要再嵌套一层布局。 这样是错误的,会造成布局层级增多,影响性能。
细节
setContentView()与LayoutInfalter.inflate()的区别 setContentView()一旦调用,就会立即显示UI. 而LayoutInfalter.inflate()只是把布局转换成对应的View对象,不会立即显示,只有需要的时候再显示出来。
View.inflate()方法与LayoutInflater.inflate()的区别 直接上源码:
public static View inflate(Context context, int resource, ViewGroup root) {
LayoutInflater factory = LayoutInflater.from(context);return factory.inflate(resource, root);
}
- ListView高度问题
- ListView高度问题
- ListView 动态设置高度问题
- ListView 动态设置高度问题
- 嵌套ListView,GridView高度问题
- ListView 动态设置高度问题
- listview中item高度问题
- ListView 动态设置高度问题
- listview item高度设置问题
- ScrollView嵌套ListView高度问题
- scrollView嵌套listview时,listview高度问题
- ScrollView 嵌套listview解决listview高度问题
- 关于ListView中Item的高度问题
- 关于ListView中Item的高度问题
- listview因高度问题,重复调用getView
- Javafx listView中item高度问题
- 解决listview嵌套时的高度问题
- listview计算高度是的奇异问题
- 关于android 和 耗时操作的一点理解
- 春节长假怎么过?爆笑漫画谈春节九种过法
- VS2010下配置使用OpenGL的glut库
- SDWebImage提取https图片失败
- GetLogicalDriveStrings
- ListView高度问题
- 不做低头族,春节来为父母做九件事!
- 关于多文档MFC从xp系统上移植到win7上出现错误的问题解决经验
- JDK的彻底删除
- HTTPS站点搭建教程:Win7/Windows Server 2008R2
- JQuery选择器
- 二进制中1的个数
- 欢迎使用CSDN-markdown编辑器
- 使用Spring-Security进行登录控制的session问题