news 2026/4/15 19:08:29

安卓基础之《(20)—高级控件(2)列表类视图》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
安卓基础之《(20)—高级控件(2)列表类视图》

一、列表视图ListView

1、ListView允许在页面上分行展示数据列表,例如新闻列表、商品列表等,方便用户浏览与操作

2、ListView去掉分隔线
设置属性:
android:divider="@null"
android:dividerHeight="0dp"

3、ListView去掉点击的动画效果
设置属性:
android:listSelector="#00000000"

4、例子
ListViewActivity.java

package com.example.chapter08; import androidx.appcompat.app.AppCompatActivity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.ListView; import com.example.chapter08.adapter.PlanetBaseAdapter; import com.example.chapter08.bean.Planet; import com.example.chapter08.util.ImageUtil; import com.example.chapter08.util.ToastUtil; import java.util.List; public class ListViewActivity extends AppCompatActivity implements AdapterView.OnItemClickListener, CompoundButton.OnCheckedChangeListener { private List<Planet> planetList; private CheckBox ck_divider; private CheckBox ck_selector; private ListView lv_planet; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_view); lv_planet = findViewById(R.id.lv_planet); planetList = Planet.getDefaultList(); PlanetBaseAdapter adapter = new PlanetBaseAdapter(this, planetList); lv_planet.setAdapter(adapter); lv_planet.setOnItemClickListener(this); ck_divider = findViewById(R.id.ck_divider); ck_selector = findViewById(R.id.ck_selector); ck_divider.setOnCheckedChangeListener(this); ck_selector.setOnCheckedChangeListener(this); } @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { ToastUtil.show(this, "您选择的是:" + planetList.get(position).getName()); } @Override public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { if (compoundButton.getId() == R.id.ck_divider) { // 显示分隔线 if (ck_divider.isChecked()) { Drawable drawable = getResources().getDrawable(R.color.black, getTheme()); lv_planet.setDivider(drawable); // 设置分隔线的高度 lv_planet.setDividerHeight(ImageUtil.dip2px(this, 1)); } else { lv_planet.setDivider(null); lv_planet.setDividerHeight(0); } } else if (compoundButton.getId() == R.id.ck_selector) { if (ck_selector.isChecked()) { // 显示按压背景 lv_planet.setSelector(R.drawable.list_selector); // 设置选择器 } else { Drawable drawable = getResources().getDrawable(R.color.transparent, getTheme()); lv_planet.setSelector(drawable); } } } }

布局文件activity_list_view.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".ListViewActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal"> <CheckBox android:id="@+id/ck_divider" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="start|center" android:text="显示分隔线" android:textSize="17sp"/> <CheckBox android:id="@+id/ck_selector" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="start|center" android:text="显示按压背景" android:textSize="17sp"/> </LinearLayout> <ListView android:id="@+id/lv_planet" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@null" android:dividerHeight="0dp" android:listSelector="@color/transparent" /> </LinearLayout>

选择器list_selector.xml

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/orange"/> <item android:drawable="@color/white"/> </selector>

颜色资源colors.xml

<?xml version="1.0" encoding="utf-8"?> <resources> <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> <color name="orange">#FFFFDD</color> <color name="transparent">#00000000</color> </resources>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 16:15:49

SiameseUIE环境部署:PyTorch版本锁定环境下的依赖冲突屏蔽技术

SiameseUIE环境部署&#xff1a;PyTorch版本锁定环境下的依赖冲突屏蔽技术 1. 为什么在受限云环境中部署SiameseUIE这么难&#xff1f; 你有没有遇到过这样的情况&#xff1a;刚租好一台轻量级云实例&#xff0c;系统盘只有40G&#xff0c;PyTorch版本被平台硬性锁定为2.8&am…

作者头像 李华
网站建设 2026/4/13 21:43:07

RMBG-2.0实操案例:宠物电商网站商品图统一白底+透明底双版本生成

RMBG-2.0实操案例&#xff1a;宠物电商网站商品图统一白底透明底双版本生成 1. 项目背景与需求分析 宠物电商网站每天需要处理大量商品图片&#xff0c;传统的人工抠图方式存在以下痛点&#xff1a; 效率低下&#xff1a;专业设计师处理一张图需要5-10分钟成本高昂&#xff…

作者头像 李华
网站建设 2026/4/7 11:05:17

SiameseUniNLU真实案例:智能客服问答系统搭建实录

SiameseUniNLU真实案例&#xff1a;智能客服问答系统搭建实录 在企业级智能客服系统中&#xff0c;一个长期存在的痛点是&#xff1a;用户提问千变万化&#xff0c;而知识库中的标准问句却相对固定。比如&#xff0c;“我的订单还没发货”“快递怎么还没到”“下单三天了还没看…

作者头像 李华
网站建设 2026/4/12 21:05:19

魔兽争霸3 修复工具:让经典游戏兼容现代系统的完美方案

魔兽争霸3 修复工具&#xff1a;让经典游戏兼容现代系统的完美方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典游戏兼容问题烦恼吗&…

作者头像 李华
网站建设 2026/4/13 9:48:43

手把手教你用Moondream2打造个人图片分析助手

手把手教你用Moondream2打造个人图片分析助手 1. 为什么你需要一个“看得懂图”的本地助手 你有没有过这样的时刻&#xff1a; 看到一张构图精美的照片&#xff0c;想复刻却不知如何用文字精准描述&#xff1b;收到朋友发来的带文字的街景图&#xff0c;想快速提取信息却懒得…

作者头像 李华
网站建设 2026/4/15 11:48:37

如何用M9A智能助手提升《重返未来:1999》游戏体验?

如何用M9A智能助手提升《重返未来&#xff1a;1999》游戏体验&#xff1f; 【免费下载链接】M9A 重返未来&#xff1a;1999 小助手 项目地址: https://gitcode.com/gh_mirrors/m9a/M9A &#x1f50d; 你是否曾遇到这样的情况&#xff1a;每天花2小时重复刷取素材&#x…

作者头像 李华