ListView这样设置竟然导致BaseAdapter.getView疯狂执行

今天自定义ListView的BaseAdapt,却惊人发现如果在XML中ListView如下设置:

<ListView

android:id="@+id/place_list"

android:layout_height="wrap_content"

android:layout_width="wrap_content"

></ListView>

那么listView对应的BaseAdapter中的getView方法会疯狂地执行(不停执行),目前我还不清楚原因,如果哪位知道为什么,可以评论告诉我,不胜感谢!!

当我把设置改成

    <ListView

android:id="@+id/place_list"

android:layout_height="match_parent"

android:layout_width="match_parent"

></ListView>

那么listView对应的BaseAdapter中的getView方法执行就正常了,what happened!shen me gui!花了很长时间找答案,却在无意中解决了,在疑惑之余又感觉很兴奋,这就是编程经验!!

时间: 2024-10-25 18:36:17

ListView这样设置竟然导致BaseAdapter.getView疯狂执行的相关文章

Android ListView 第一次设置Adapter时候getView调用多次

之前遇到这个奇怪现象,记录一下: 使用Listview并设置Adapter时, 会回调多次getView,比如我有4个items,按理说getView应该是调用一次(打出4个log),结果回调有4次(4*4个log). 原因: Listview的layout_height 为自适应:wrap_content,这个情况下,listview没办法确定用多少item的view来填充它自己,这迫使listview多次测量它的子元素. 解决: [html] view plaincopy android:l

listview必须设置数据适配器才能显示出来

listview必须设置数据适配器才能显示出来,哪怕只设置一个空的数据适配器都行: lvTabDetail.setAdapter(new NewsListAdapter()); class NewsListAdapter extends BaseAdapter{ @Override public int getCount() { // TODO Auto-generated method stub return 0; } @Override public Object getItem(int p

Android两个ListView共用一个万能的BaseAdapter

Android两个ListView共用一个万能的BaseAdapter 升级之前的MyAdapter.java package run.yang.com.listviewactivedemo; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAd

Android LIstView初次创建getview方法执行多次问题

写listview优化的时候,发现Listview初次创建的时候会多次执行getView方法. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools&quo

安卓ListView 如何设置item的高度

安卓中的listview,设置其显示item布局的高度来设置item在listview中显示的高度是不可取的.如何设置item的高度? 分为两种情况: 1.有图片的情况: 有图片的情况比较简单,布局的大小将会由图片的大小来撑起,这是只需要调节图片的width和height即可. 2.无图片情况 无图片的情况我们可以用两种方式来确定大小 a.在布局中使用Android:minHeight="5dp",填上需要的最小高度,这个方便直接. b.如果是在自己写的Adapter中,那就可以在ge

[Android学习笔记]ListView中含有Button导致无法响应onItemClick回调的解决办法

转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类控件时(比如TextView),注册ListView的监听setOnItemClickListener之后,当点击Item时候会触发onItemClick回调. 但是,当Item中存在Button(继承于Button)的控件时,onItemClick回调不会被触发. 解决方案: 在Item的布局文件

mysql max_allowed_packet设置过小导致写入失败

mysql max_allowed_packet 设置过小导致记录写入失败 mysql根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置 show VARIABLES like '%max_allowed_packet%'; 调整: set global max_allowed_packet = 1024*1024*100   ##设置为100M exit 退出mysql客户端,重新登陆生

Html和JS文件未使用UTF-8编码导致部分JS函数执行不正确

昨天写Windows应用程序用的前端HTML页面时,发现了一个奇怪的问题,一段简单的JS代码,竟然执行错误. function replaceSymbol(){ var val_exp = $('#calc_expression').val(); alert(val_exp); val_exp=val_exp.replace(/(/g,'(').replace(/)/g,')').replace(/×/g,'*').replace(/÷/g,'/'); alert(val_exp); $('#c

C#的线程类之Thread类以及对为什么设置线程优先级却不先执行这一问题本身的认识

1.C#对线程进行操作时,通过Thread类,可以对线程进行创建.挂起.恢复.休眠.终止及设置优先级. Thread类位于System.Threading命名空间下,该命名空间还包含一个ThreadPool类(允许用户使用系统提供的线程池)和一个Timer类(在线程池上执行回调方法) 在线程运行期间,不同的时刻会表现为不同的状态,但它总是处于由ThreadState定义的一个或多个状态中.用户可以通过使用ThreadPriority枚举为线程定义优先级,但不能保证操系统会接收该优先级 2.Thr