(原创)【B4A】一步一步入门08:ListView,列表、单行、双行、双行带图片、列表项样式(控件篇04)
一、前言
本篇教程,我们来讲一下常用的控件:ListView(列表控件)。
目前官方已经不推荐使用默认的ListView控件,而是推荐另一款功能更强大的ListView:xCustomListView。不过ListView控件仍是自带的默认ListView,在使用上简单方便,多数时候是足够使用的。
相信看完的你,一定会有所收获!
本文地址:https://www.cnblogs.com/lesliexin/p/17238681.html
二、 属性
ListView与前面的控件不一样,属性项很少,只有一个之前没有介绍过的属性:FastScrollEnabled
FastScrollEnabled属性用于控制当列表中的行数过多,拖动列表是否显示快速滚动按钮。
未设置FastScrollEnabled时效果:

已设置FastScrollEnabled时效果:

三、事件
ListView有两个事件:ItemClick和ItemLongClick,分别在点击和长按残表项触发。
其事件有两个参数:Position和Value,分别表示当前点击项的序号和设置的值,具体的后文有讲解。
四、使用
ListView提供了几个常用的方法,可以方便的添加数据。
(一)单行文本
我们使用方法AddSingleLine,即可在列表中添加单行文本的列表项,参数Text即显示的内容。

需要注意的是,ListView同时还提供了AddSingleLine2方法,其仍是单选文本,但是第二个属性ReturnValue即是上面事件的第二个参数Value,这样可以为列表项添加额外的值,在事件时可以直接使用。
而在AddSingleLine中未设置Value的值,所以Value的值等于显示的文本内容。
1,AddSingleLine
代码:

效果:

2,AddSingleLine2
代码:

效果:

(二)双行文本
同理,我们使用方法AddTwoLines(AddTwoLines2)可以添加一个分为两行的列表项,参数Text即第一行内容,参数Text2即第二行文本。
代码:

效果:

(三)双行文本带图片
同理,我们使用方法AddTwoLinesAndBitmap(AddTwoLinesAndBitmap2)可以添加一个分为两行的且带图片的列表项,参数Text即第一行内容,参数Text2即第二行文本,参数Bitmap即显示的图标。
代码:

效果:

五、修改文本、图片显示样式
看了上面的示例,我们发现ListView虽然在使用上比较方便,但是在效果上却太过固定。下面我们来看一下如何修改默认的样式。
(一)修改文本样式
以双行列表为例,其内部是两个Label控件,所以我们只需要取到对应的Label控件,即可像标准的Label控件一样对其进行样式上的修改。
其两个Label在ListView中的命名是Label、SecondLabel。
我们以将两行文本都修改为斜体为例:
代码:

效果:

(二)修改图片样式
图片样式的修改原理同上,图片使用提ImageView控件,内部名称也是ImageVIew,我们取到后就可以去修改其样式。
我们以将图片宽度设置成与ListView控件等宽为例:
代码:

效果:

六、结语
本篇教程介绍了ListView(列表控件)的基本使用方法,以及基础样式的修改。
ListView胜在使用简单,而且样式也中规中矩,可以满足不少时候的需求。
感谢观看,欢迎大家一起学习,共同进步。
-【END】-
(原创)【B4A】一步一步入门08:ListView,列表、单行、双行、双行带图片、列表项样式(控件篇04)的更多相关文章
- 一步一步学android之控件篇——ScrollView
一个手机的屏幕大小是有限的,那么我要显示的东西显示不下怎么办?这就会使用到ScrollView来进行滚动显示,他的定义如下: 可以看到ScrollView是继承于FrameLayout的,所以Scro ...
- openlayers4 入门开发系列之地图导航控件篇(附源码下载)
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
- 一步一步学android之控件篇——ListView基本使用
ListView组件在应用程序中可以说是不可或缺的一部分,ListView主要是显示列表数据,同时可以滚动查看,这篇博客主要是对ListView的基本用法进行说明,后面会依次对ListView点击动态 ...
- vs2015c++/MFC入门知识全集/实例规范书籍视频下载孙鑫c++对话框计算器基础控件使用教程系列
VIP教程可免费看.可免费下载前部分试看教程地址:http://dwz.cn/4PcfPk免费下载地址:http://dwz.cn/mfc888 本课程目录 67章 [MFC项目开发第01天]Wind ...
- [C#] (原创)一步一步教你自定义控件——04,ProgressBar(进度条)
一.前言 技术没有先进与落后,只有合适与不合适. 本篇的自定义控件是:进度条(ProgressBar). 进度条的实现方式多种多样,主流的方式有:使用多张图片去实现.使用1个或2个Panel放到Use ...
- (原创)[C#] 一步一步自定义拖拽(Drag&Drop)时的鼠标效果:(一)基本原理及基本实现
一.前言 拖拽(Drag&Drop),属于是极其常用的基础功能. 无论是在系统上.应用上.还是在网页上,拖拽随处可见.同时拖拽时的鼠标效果也很漂亮,像这样: 这样: 还有这样: 等等等等. 这 ...
- 一步一步实现listview加载的性能优化
listview加载的核心是其adapter,本文针对listview加载的性能优化就是对adpter的优化,总共分四个层次: 0.最原始的加载 1.利用convertView 2.利用ViewHol ...
- 一步一步学Silverlight 2系列(31):图形图像综合实例—实现水中倒影效果
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表
本篇文章将介绍区域报表和页面报表的常见使用场景.区别和选择报表类型的一些建议,两种报表的模板设计.数据源(设计时和运行时)设置.和浏览报表的区别. ActiveReports 报表控件官方中文入门教程 ...
- DataTables 控件使用和心得 (1) - 入门
什么是DataTables DataTables是一个基于HTML/CSS/JavaScript的前端列表组件. 基于JQuery 开源并且免费(除特殊支持服务) 主要特色: 高性能,响应式,功能完整 ...
随机推荐
- Docker学习——多阶段构建(六)
之前的做法 在 Docker 17.05 版本之前,我们构建 Docker 镜像时,通常会采用两种方式: 全部放入一个 Dockerfile 一种方式是将所有的构建过程编包含在一个 Dockerfil ...
- Linux 第二节(基本命令)
www.linuxcool.com 一.ifconfig 1.Ip 地址 2.MAC地址 3.收到的数据包(RX) 4.发送的数据包(Tx) 二.uname uname -a //查看系统内核及 ...
- anaconda怎么将用户名路径切换为工作路径
- Python基础数据类型-Dictionary(字典)
# -- coding: utf-8 -- # @time : 2022/7/19 21:51 # @file : 10pytest基本数据类型-dic.py # @software: pycharm ...
- 【APT】Bitter APT组织针对巴基斯坦航空综合部门攻击活动分析
前言 蔓灵花(Bitter)是一个被广泛认为来自印度的APT组织,该组织长期针对我国及巴基斯坦的政府.军工.电力.核等部门发动网络攻击,窃取敏感数据,具有较强的政治背景.本次分享一个蔓灵花组织针对巴基 ...
- CentOS7/6 关闭防火墙(转载)
CentOS6关闭防火墙使用以下命令, //临时关闭 service iptables stop //禁止开机启动 chkconfig iptables off CentOS7中若使用同样的命令会报错 ...
- spring-boot-starter-webflux 与spring-cloud-starter-openfeign冲突
Thu Oct 22 17:16:01 CST 2020 [3be84a1c-14] There was an unexpected error (type=Internal Server Error ...
- ubuntu中用vscode
下载vscode 终端中输入code运行 输入sudo apt-get update sudo apt-get install gcc 此报错解决方式: sudo rm /var/lib/dpkg/l ...
- base64格式上传图片方法
function dataURItoBlob(dataURI) { const byteString = atob(dataURI.split(',')[1]); const mimeString = ...
- RuntimeError: Expected object of backend CUDA but got backend CPU for argument #4 'mat1'
原因:变量没有加cuda data=data.cuda()