当前位置: 首页 > news >正文

Android Studio(列表视图ListView)

前言

前面在适配器章节,已经介绍了ListView的作用(干什么的),这节将主要介绍如何去设计ListView页面视图。

思考

 列表视图需要些什么?

1. 列表项容器(装载各列表项的容器):<ListView/>

2. 列表项布局:my_list_item.xml

3. 列表所需数据:List<Object>、Adapter(桥梁)

 代码示例

下面的代码示例,是从我的项目中copy的是一个很好的例子

 

// 1. 列表项容器:activity_charge_up.xml(仅展示了相关部分)
<ListViewandroid:id="@+id/cuisine_list"android:layout_width="match_parent"android:layout_height="match_parent">
</ListView>// 2. 列表项布局:cuisine_list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="60dp"android:background="#FEFCEB"android:layout_margin="10dp"><TextViewandroid:id="@+id/cuisineName"android:layout_width="75dp"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_marginLeft="20dp"android:text="西红柿炒鸡蛋"android:textColor="@color/black"android:textSize="12sp"></TextView><TextViewandroid:id="@+id/cuisinePrice"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_marginLeft="5dp"android:layout_toRightOf="@+id/cuisineName"android:text="¥99.90"android:textColor="#FF1100"android:textSize="12sp"android:textStyle="bold"></TextView><Buttonandroid:id="@+id/subCuisine"android:layout_width="30dp"android:layout_height="30dp"android:layout_centerVertical="true"android:layout_toLeftOf="@+id/cuisineQuantity"android:textSize="5dp"android:background="@drawable/sub"></Button><TextViewandroid:id="@+id/cuisineQuantity"android:layout_width="20dp"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_toLeftOf="@+id/addCuisine"android:gravity="center"android:text="0"android:textColor="@color/black"android:textSize="10dp"></TextView><Buttonandroid:id="@+id/addCuisine"android:layout_width="30dp"android:layout_height="30dp"android:background="@drawable/add"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:textSize="5sp"></Button></RelativeLayout>
</RelativeLayout>

适配器的使用很简单:

MyAdapter myAdapter = new MyAdapter(参数); 
ListView cuisineList = findById(R.layout.cuisine_list);
cuisineList.setAdapter(myAdapter);

复杂的是适配器的业务逻辑(适配器的实现):

    对于适配器的实现,可以参考前面适配器章节,这里就不再做具体的代码示例。

    在实际需求中,在适配器中你可能需要接受多个参数,你需要处理列表项的交互(譬如点击),你可能也需要即时地去改变列表项所在页面的相关控件内容(因为修改列表项一般也需要修改其他页面元素)。

 导航栏

其实学习ListView后,当想到设计导航栏后,可能会想到它能否胜任导航栏的设计呢?

        并不好去设计。首先,导航栏不仅有竖直的,还有水平的;其二,导航栏不仅仅是导航栏的变化,更涉及到导航内容的变化。

        所以导航栏的设计,一般有以下两种策略:

        (1) 自己设计:导航(LinearLayout)、导航页面内容(removeAllViews+addView+LayoutInflater)

        (2) 可用控件FragmentViewPager(参考链接:Android四种底部导航栏实现)

后言

 下一节,将介绍RecyclerView的相关知识

http://www.lryc.cn/news/224765.html

相关文章:

  • 让深度神经网络绘画以了解它们是如何工作的
  • https://www.jianshu.com/p/34bf240b85a9
  • 如何导出PPT画的图为高清图片?插入到world后不压缩图像的设置方法?
  • 【Spring】Spring IOC DI
  • 一招解密网络流量瓶颈!
  • 某校帮签到小程序m 加密参数解析
  • Node.js |(六)express框架 | 尚硅谷2023版Node.js零基础视频教程
  • 包教包会:Mysql主从复制搭建
  • Subset Selection
  • 【测开求职】面试题:计算机网络 精简版整理
  • 设计模式-代理模式(delegate)
  • MongoDB 安装与配置
  • rabbitMq创建交换机,以及路由键绑定队列教程
  • odoo16前端框架源码阅读——ormService.js
  • 详谈滑动窗口算法与KMP算法区别以及二者在什么场景下使用
  • k8s、数据存储
  • Vue生命周期全解析:从工厂岗位到任务执行,一览无遗!
  • 常见产品结构四大类型 优劣势比较
  • 如何优雅的开发?试试这个低代码项目
  • 个人开发常用idea插件
  • 如何使用ArcGIS Pro制作个性三维地形图
  • 支撑企业数字化经营,《2023指标平台白皮书》正式发布
  • 【Linux】Linux的两种连接文件方法(ln | 符号链接和硬链接)
  • vue 点击滑动到页面指定位置(点击下滑滚动)的功能
  • LCD婴儿电子秤pcba/芯片方案设计
  • 2023年开发语言和数据库排行
  • 实现http请求-hutool
  • Ubuntu22.04 FTP 搭建以及挂载
  • Mac电脑Visio文件编辑查看软件推荐Visio Viewer for Mac
  • 【星海出品】flask (二) request替代VUE测试flask接口