android的ListView點(diǎn)擊item使item展開(kāi)的做法的實(shí)現(xiàn)代碼
本文介紹了android的ListView點(diǎn)擊item使item展開(kāi)的做法的實(shí)現(xiàn)代碼,分享給大家,具體如下:
效果圖:

原理是點(diǎn)擊item的時(shí)候,重新measure list的各個(gè)item的高度
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
MyData data = myList.get(position);
if (oldPostion == position) {
if (data.expand) {
oldPostion = -1;
}
data.expand = !data.expand;
}else{
oldPostion = position;
data.expand = true;
}
int totalHeight = 0;
for(int i=0;i<myAdapter.getCount();i++) {
View viewItem = myAdapter.getView(i, null, list);
viewItem.measure(0, 0);
totalHeight += viewItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = list.getLayoutParams();
params.height = totalHeight
+ (list.getDividerHeight() * (list.getCount() - 1));
list.setLayoutParams(params);
myAdapter.notifyDataSetChanged();
}
});
adapter:
private class myAdapter extends BaseAdapter{
@Override
public int getCount() {
return myList.size();
}
@Override
public Object getItem(int position) {
return myList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MyTag tag = new MyTag();
MyData data = myList.get(position);
if(convertView == null) {
convertView = inflater.inflate(R.layout.expand_item_layout, null);
tag.item1 = (TextView)convertView.findViewById(R.id.item1);
tag.item2 = (RelativeLayout)convertView.findViewById(R.id.item2);
convertView.setTag(tag);
}else{
tag = (MyTag)convertView.getTag();
}
if(data.expand) {
tag.item2.setVisibility(View.VISIBLE);
}else{
tag.item2.setVisibility(View.GONE);
}
tag.item1.setText(data.name);
return convertView;
}
}
private class MyTag{
private TextView item1;
private RelativeLayout item2;
}
private class MyData{
boolean expand;
String name;
}
代碼在https://github.com/nickgao1986/StepSport
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android編程實(shí)現(xiàn)Listview點(diǎn)擊展開(kāi)和隱藏的方法
- Android編程實(shí)現(xiàn)ListView中item部分區(qū)域添加點(diǎn)擊事件功能
- Android開(kāi)發(fā)實(shí)現(xiàn)ListView點(diǎn)擊item改變顏色功能示例
- Android 實(shí)現(xiàn)ListView的點(diǎn)擊變色的實(shí)例
- Android ListView的Item點(diǎn)擊效果的定制
- Android實(shí)現(xiàn)為L(zhǎng)istView同時(shí)設(shè)置點(diǎn)擊時(shí)的背景和點(diǎn)擊松手之后的背景
- Android ListView的item背景色設(shè)置和item點(diǎn)擊無(wú)響應(yīng)的解決方法
- Android開(kāi)發(fā)之ListView實(shí)現(xiàn)Item局部刷新
- android ListView內(nèi)數(shù)據(jù)的動(dòng)態(tài)添加與刪除實(shí)例代碼
- android ListView和GridView拖拽移位實(shí)現(xiàn)代碼
- Android開(kāi)發(fā)實(shí)現(xiàn)ListView點(diǎn)擊展開(kāi)收起效果示例
相關(guān)文章
android 大圖片拖拽并縮放實(shí)現(xiàn)原理
android 大圖片拖拽縮放有利于用戶體驗(yàn),在開(kāi)發(fā)過(guò)程中經(jīng)常使用到,這篇圖片拖拽縮放也是我在項(xiàng)目中用到的,今天整理一下,將源碼奉獻(xiàn)給大家,希望對(duì)大家以后碰到相似的問(wèn)題有幫助2013-01-01
Android文件存儲(chǔ)SharedPreferences源碼解析
SharedPreferences是安卓平臺(tái)上一個(gè)輕量級(jí)的存儲(chǔ)類,用來(lái)保存應(yīng)用的一些常用配置,比如Activity狀態(tài),Activity暫停時(shí),將此activity的狀態(tài)保存到SharedPereferences中;當(dāng)Activity重載,系統(tǒng)回調(diào)方法onSaveInstanceState時(shí),再?gòu)腟haredPreferences中將值取出2022-08-08
Android Spinner與適配器模式詳解及實(shí)例代碼
這篇文章主要介紹了Android Spinner與適配器模式詳解相關(guān)資料,并附代碼實(shí)例,需要的朋友可以參考下2016-10-10
Android編程實(shí)現(xiàn)根據(jù)經(jīng)緯度查詢地址并對(duì)獲取的json數(shù)據(jù)進(jìn)行解析的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)根據(jù)經(jīng)緯度查詢地址并對(duì)獲取的json數(shù)據(jù)進(jìn)行解析的方法,結(jié)合實(shí)例形式分析了Android的經(jīng)緯度地址解析與json格式數(shù)據(jù)操作相關(guān)技巧,需要的朋友可以參考下2017-02-02
Android 自定義SeekBar 實(shí)現(xiàn)分段顯示不同背景顏色的示例代碼
這篇文章主要介紹了Android 自定義SeekBar 實(shí)現(xiàn)分段顯示不同背景顏色,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
Android自定義實(shí)現(xiàn)頂部粘性下拉刷新效果
這篇文章主要為大家詳細(xì)介紹了Android自定義實(shí)現(xiàn)頂部粘性下拉刷新效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Android實(shí)現(xiàn)跨進(jìn)程接口回掉的方法
這篇文章主要給大家介紹了關(guān)于Android如何實(shí)現(xiàn)跨進(jìn)程接口回掉的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
Android自定義滾動(dòng)選擇器實(shí)例代碼
本篇文章主要介紹了Android自定義滾動(dòng)選擇器實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01

