解决listview getView 被执行多次的问题

来源:互联网 发布:java公路车怎么样 编辑:程序博客网 时间:2024/06/11 23:49


执行多次的原因:listview 高度不固定,系统要计算listview 的高度,才执行多次。


解决思路:固定listview的高度;


方式 1、xml 给listview 设定个固定的高度;


方式2:

在listview刷新之前 通过代码 固定 Listview高度:代码如下:

private void fixedListView(){
listView = (ListView) findViewById(R.id.listview);
ViewGroup.LayoutParams params = listView.getLayoutParams();
layout = (HorizontalScrollView) findViewById(R.id.layout);
params.height = layout.getHeight(); //需要设置的listview的高度,你可以设置成一个定值,也可以设置成其他容器的高度,如果是其他容器高度,那么不要在oncreate中执行,需要做延时处理,否则高度为0
listView.setLayoutParams(params);


附上dp 转 px 的方法:

  1. import android.content.Context;  
  2.   
  3. public class DensityUtil {  
  4.   
  5.     /** 
  6.      * 根据手机的分辨率从 dp 的单位 转成为 px(像素) 
  7.      */  
  8.     public static int dip2px(Context context, float dpValue) {  
  9.         final float scale = context.getResources().getDisplayMetrics().density;  
  10.         return (int) (dpValue * scale + 0.5f);  
  11.     }  
  12.   
  13.     /** 
  14.      * 根据手机的分辨率从 px(像素) 的单位 转成为 dp 
  15.      */  
  16.     public static int px2dip(Context context, float pxValue) {  
  17.         final float scale = context.getResources().getDisplayMetrics().density;  
  18.         return (int) (pxValue / scale + 0.5f);  
  19.     }  
  20. }  

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 驾驶证扣两个6分怎么办 行驶证检验有效期过期怎么办 驾驶证被扣26分怎么办 c1驾驶证扣26分怎么办 驾驶证被扣6分后怎么办 c1驾照年审过期一天怎么办 审驾照时间过了怎么办 b2驾驶证扣了分怎么办 a2驾照逾期未审怎么办 中学生只想打游戏不肯学习怎么办 汽车4年未年检怎么办 2年没有验车怎么办 驾驶证过期2年半怎么办 审车逾期一个月怎么办 摩托车驾驶证年审过期一个月怎么办 摩托车驾驶证记满12分怎么办 b2驾驶证扣2分该怎么办 b2扣6分以上怎么办 审驾照晚了3天怎么办 考驾驶证3年到期怎么办 学习驾驶证明过期了怎么办 a2扣了12分怎么办 驾照a2扣6分了怎么办 a2本扣9分怎么办 驾驶证分扣3分怎么办? 异地换驾驶证没有居住证怎么办 b2开c1车扣分怎么办 驾照五次没考过怎么办 大车行驶证丢了怎么办 车的产权证丢了怎么办 车子行驶证掉了怎么办 定期的存折丢了怎么办 存折密码输错6次怎么办 营业执照原件丢失怎么办怎么注销 违章扣了14分怎么办 c1驾驶本过期了怎么办 考驾照没带身份证怎么办 上海扣满12分怎么办 美宝旅行证丢失怎么办 汽车证件全丢了怎么办 车的行驶本丢了怎么办