关于ListView、GridView的一些处理

本文介绍如何自定义ListView和GridView的外观及行为,包括使用状态选择器改变点击效果、调整间距等布局属性,以及通过Adapter更新数据和样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

属性:

cacheColorHint   高光缓冲色     低版本的    listview 按下会出现颜色   一般都会设置为  透明色

listSelector    选中条目的颜色      

如果不设置  默认为系统提供的状态选择颜色(可能为黄色)

如果不设置为 状态选择器,直接给个color值 的时候    你点击子条目后  该子条目会变成你设置的颜色   

如果设置为 状态选择器 为 pressed状态  后    你点击子条目  按下 和未按下的颜色   就是你选择器中所设置的 颜色

xml中设置的属性

android:cacheColorHint="#00000000"
android:listSelector="@drawable/gridview_selector_color"
drawable中的状态选择器

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

color颜色值

	
<color name="transparent">#00000000</color>
<color name="gridview_click_color">#e3c9c5c5</color>


Listview   移动到指定的位置:

  listview .smoothScrollToPosition(position);   可让listview 平滑到指定的position


GridView:

一般布局中可能会用到的属性有: verticalSpacing-- 垂直间距    horizontalSpacing--水平间距




ListView  GridView 如果想实现   子条目点击  内容或者显示文字样式的改变

 需要在 adapter中   自己写个方法    例如:

 private int selection;

 public  void  setSelectionPosition(int selectionPosition){

    this.selectionPosition = selectionPosition;

    notifyDataSetChanged();

}

然后在getView方法中  进行判断:

   if(position == selectionPosition){

      //  选中改变后的样式

   }else{

      //  未选中的样式

   }


同样的道理  改变数据源 刷新适配器:

这里的  T  可以替换为自己的  Bean对象

private List<T> dataList;          // 这个集合的名字  要与getView中  所用的集合名字相同

public  void  setNewDataList(List<T> newDataList){

    this.dataList = newDataList;

    notifyDataSetChanged();

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值