ListView的addHeaderView()方法相关问题

使用listView.addHeaderView(view) 可以在 listView 上方添加一个view视图 ,使listView和这个view连接在一起 效果上看上去是一个整体

一般用于上拉刷新下拉加载listView

1、关于addHeaderView(view)方法的多次使用

对应一个ListView对象 比如:list

每使用一次addHeaderView(view)方法 就会在list 列表对象上方添加一个view

而添加的view的排列顺序是按照添加的次序排列的,

list.addHeaderView(view1);

list.addHeaderView(view2);

效果就为:

view1
view2
list

view1在最上面  view2在最下面

2、关于ListView对象使用addHeaderView()方法后  ,其item子项的位置问题

list.addHeaderView(view1);

list.addHeaderView(view2);

这时候list对象上方就有两个view视图了,

而这时候list对象的第一个位置的就是view1视图了 ,而不再是list中的第一个item子项

比如,再添加view1,view2之后,list第一个item子项的位置就成为了2

view1
view2
list

position :0

position :1

position :2--list.size()-2;

时间: 2024-10-06 12:36:01

ListView的addHeaderView()方法相关问题的相关文章

ListView的 addHeaderView

在代码中使用 listView .addHeaderView(...) 方法可以在ListView组件上方添加上其他组件,并且连结在一起像是一个新组件.如果多次使用 .addHeaderView(...) ,则最先添加的组件在最上方,按添加的先后顺序由上到下罗列. 此时listView 的 position = 0 的位置对应的是view1,而不再是原来listView中的第一条了. 若要对做原来的ListView做不可见设置,可使用将listView的adapter中数据置空的方法,在可见时再

黑马程序员---Objective-C基础学习---类、对象、方法相关知识笔记

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类.对象.方法相关知识笔记 Objective-C相对于C语言有了面向对象的特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简.下面是一些相关知识笔记. 类定义 成员变量 方法和属性 self关键字 类定义 在C#.Java等其他高级语言中定义一个类是相当简单点的,直接一个关键字class加一对大括号基本就完成了,但是在ObjC中类的定义相对变化比较大.现

Win8 App使用Listview的简单方法

这是Win8 App神圣不可侵犯的头文件: <head> <meta charset="utf-8"> <title>ListViewExample</title> <!-- WinJS references --> <link href="//Microsoft.WinJS.0.6/css/ui-light.css" rel="stylesheet"> <script

关于Android的ListView一点使用方法

在物联网学习中我需要用到Android来获取PC端数据库内的表数据并显示在屏幕上,因此我决定用WebService来连接数据库获取数据,用ListView组件显示数据.这里我将获取到的数据存入List泛型中,就不演示如何获取数据. ListView是Android常用的一个组件,可以以列表的方式显示数据,并且能自适应内容.ListView组件并非一次加载所有数据,而是屏幕显示多少行数据就加载多少行数据.但往下拖动时再加载新的一行数据,且当屏幕第一行被移出屏幕时内存会被回收,往下同理.所以当数据量

从源码上分析ListView的addHeaderView和setAdapter的调用顺序

ListView想要添加headerview的话,就要通过addHeaderView这个方法,然后想要为ListView设置数据的话,就要调用setAdapter方法了.但是,在调用addHeaderView和setAdapter的顺序上,有时会爆出Java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called.的异常.这是因为我们在addHeaderVie

ListView的addHeaderView和setAdapter的调用顺序

ListView想要添加headerview的话,就要通过addHeaderView这个方法,然后想要为ListView设置数据的话,就要调用setAdapter方法了.但是,在调用addHeaderView和setAdapter的顺序上,有时会爆出java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called.的异常.这是因为我们在addHeaderVie

常用的优化ListView效率的方法及其原理

在Android开发中,ListView的使用频率及其高,可以说99%的应用中你都可以看到他的身影. 在日常的开发工作中,我们一般会通过以下方法来优化ListView的效率: 1.复用getView方法中的convertView 一个ListView可能有很多Item,但是限于手机屏幕非常有限,所以只能显示很少的一部分Item,比如能显示10个,那么Android会在ListView中保存多余10个的Item, 溢出屏幕的Item会被回收到一个池子中,以备后用,那么就不用从新new出View对象

利用ListView的基本方法实现效果

日常的开发工作经常需要ListView作为布局的组件,而且很多时候都会遇到需要自定义ListView的情况. 也有些问题并不需要自定义的ListView,基于原生的ListView就能实现,但需要灵活处理Adapter. 我们现在就遇到一个棘手的问题:原本的下拉刷新ListView是单个item的刷新,现在要改成一行两个item,照道理来讲,这应该是一个GridView,但是要考虑兼容以往的下拉刷新效果,要重新定义一个这样的GridView是比较困难的,因为打算基于原生的ListView进行改造

Android ListView 单条刷新方法实践及原理解析

对于使用listView配合adapter进行刷新的方法大家都不陌生,先刷新adapter里的数据,然后调用notifydatasetchange通知listView刷新界面. 方法虽然简单,但这里面涉及到一个效率的问题,调用notifydatasetchange其实会导致adpter的getView方法被多次调用 (画面上能显示多少就会被调用多少次),如果是很明确的知道只更新了list中的某一个项的数据(比如用户点击list某一项后更新该项的显示状态,或者 后台回调更新list某一项,等等),