ListView专题
时间:2022-04-24
本文章向大家介绍ListView专题,主要内容包括ListView专题、2.ListView.setEmptyView()没有效果、3.ListView调用addHeaderView后,onItemClick时位置不正确、4.ListView.addHeadrView()添加ViewPager不显示的问题、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
ListView专题
1.ListView
属性:
-
fadingEdge
属性ListView
上边和下边有黑色的阴影,android : fadingEdge = "none"
后就不会有阴影了 -
scrollbars
属性,隐藏滚动条android : scrollbars = "none"
setVerticalScrollBarEnabled(true);
-
fadeScrollbars
属性android : fadeScrollbars = "true"
设置此值为true就可以实现滚动条的自动隐藏和显示。 -
fastScrollEnabled
属性 快速滚动滑块android : fastScrollEnabled = "true"
mListView.setFastScrollEnabled(true);
-
drawSelectorOnTop
属性 When set to true, the selector will be drawn over the selecteditem. Otherwise the selector is drawn behind the selected item. Thedefault value is false.android:drawSelectorOnTop = "false"
点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的
2.ListView.setEmptyView()
没有效果
有时调用setEmptyView
没有效果,这是因为我们设置的这个EmptyView
必须和该ListView
在同一个布局体系中
如:下面这样的代码有些时候会没有效果
View loadingView = View.inflate(getActivity(), R.layout.loading, null);
mPullLoadListView.setEmptyView(loadingView);
mPullLoadListView.setAdapter(adapter);
-
Fragment
中添加下面代码就可以了。 View loadingView = View.inflate(getActivity(), R.layout.loading, null); //添加到同一布局体系中 getActivity().addContentView(loadingView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT )); mPullLoadListView.setEmptyView(loadingView); mPullLoadListView.setAdapter(adapter); -
Activity
中 View empty = getLayoutInflater().inflate(R.layout.empty_list_item, null, false); addContentView(empty, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); mPullLoadListView.setEmptyView(empty);
3.ListView
调用addHeaderView
后,onItemClick
时位置不正确
addHeaderView()
以及addFooterView()
一定要在调用setAdapter()
方法之前调用,不然会报错。
当ListView
通过addHeaderView
添后,在onItemClick
中的position
会加上Header
的个数,所以这时候在获取数据的时候要对位置进行处理。
下面两种方法都可以:
- 第一种 public void onItemClick(AdapterView <?> parent, View v, int position, long id) { //parent.getAdapter().getItem(position)能得到真正位置的数据 doSomething(parent.getAdapter().getItem(position)); }
- 第二种 mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { int headerViewCount = mListView.getHeaderViewsCount(); int realPos = position - mListView.getHeaderViewsCount(); if (realPos < 0) return; ......这样realPos就是真是的位置 } });
4.ListView.addHeadrView()
添加ViewPager
不显示的问题
addHeaderView()
添加ViewPager
后不能显示出来的问题:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/vp_auto_circle"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
<com.ifeng.padvideo.widget.IndicatorTabsView
android:id="@+id/stv_auto_circle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</com.ifeng.padvideo.widget.IndicatorTabsView>
</LinearLayout>
mHeaderView = View.inflate(this, R.layout.auto_circle_viewpager, null);
mAutoCircleViewPager = (ViewPager) mHeaderView.findViewById(R.id.vp_auto_circle);
//addHeaderView要在ListView的setAdapter前添加
mListView.addHeaderView(mHeaderView);
注意ViewPager的布局中宽高不能够使用wrap_content
可以使用match_parent
但是上面显示不出来也是由于match_parent的问题,
如果我们将布局中的layout_height="200dip"
,这样就能够显示出来ViewPager
- 任何人都不应该控制区块链供应链
- c# IO操作(带进度的文件复制器,读取文本文件的指定行)
- 高科技来了!玩游戏一样开船的时代来了……
- C++库大全
- 人工智能行业前景预测 全球市场或超2700亿元
- Arxiv网络科学论文摘要14篇
- 工信部:网络强国建设2018年重点工作任务
- 刚刚!张小龙再出重磅!微信小程序掀起新零售红利狂潮!
- 无人驾驶系列——深度学习笔记:Tensorflow的安装-windows系统
- 2018年12大顶级云安全威胁
- 缤果盒子为域名意识打call 六位数秒下bingobox.com
- 用Qt写软件系列二:QCookieViewer(浏览器Cookie查看器)
- 用Qt写软件系列一:QCacheViewer(浏览器缓存查看器)
- 用Qt写软件系列三:一个简单的系统工具(上)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法