news 2026/8/7 6:48:42

安卓基础之《(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/8/4 2:37:06

告别魔兽争霸III闪退:WarcraftHelper全方位兼容性优化指南

告别魔兽争霸III闪退&#xff1a;WarcraftHelper全方位兼容性优化指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一、问题定位&#xff1a;当游戏…

作者头像 李华
网站建设 2026/7/26 16:08:10

零基础掌握Multisim14的函数发生器配置方法

以下是对您提供的博文内容进行 深度润色与结构重构后的专业级技术文章 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、真实、有“人味”——像一位资深电路仿真工程师在和你面对面讲解; ✅ 打破模板化标题体系,用逻辑流替代章节切割,全文一气呵成; …

作者头像 李华
网站建设 2026/8/4 2:37:05

如何判断识别不准?Emotion2Vec+使用注意事项

如何判断识别不准&#xff1f;Emotion2Vec Large语音情感识别系统使用注意事项 1. 为什么“识别不准”是个伪命题&#xff1f; 在实际使用 Emotion2Vec Large 语音情感识别系统时&#xff0c;很多用户会下意识地问&#xff1a;“这个结果准不准&#xff1f;”——但这个问题本…

作者头像 李华
网站建设 2026/7/26 5:19:26

3大颠覆式黑科技!茉莉花插件让中文文献管理效率提升300%

3大颠覆式黑科技&#xff01;茉莉花插件让中文文献管理效率提升300% 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 你是否也曾在…

作者头像 李华
网站建设 2026/8/3 0:21:21

突破限速壁垒:2025年网盘加速工具实战指南

突破限速壁垒&#xff1a;2025年网盘加速工具实战指南 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改&#xff08;改自6.1.4版本&#xff09; &#xff0c;自用&#xff0c;去推广&#xff0c;无需…

作者头像 李华
网站建设 2026/7/26 3:03:19

Qwen3-Reranker-0.6B效果分享:工业设备说明书多模态文本段落重排序

Qwen3-Reranker-0.6B效果分享&#xff1a;工业设备说明书多模态文本段落重排序 在工业智能化升级过程中&#xff0c;设备说明书的结构化处理一直是个“隐形痛点”。一台大型数控机床的说明书动辄上千页&#xff0c;PDF里混着文字、表格、示意图、零件编号图&#xff0c;用户查…

作者头像 李华