废话不多说, 上图:

GIF.gif

上思路:

动态改变数据适配器中的getCount()方法的返回值;

点击刷新适配器中的数据;

注意:

1.这是在普通的布局中实现;

2.如需要在ScrollView中实现该功能, 需要解决嵌套产生的ListView条目显示不全问题;

3.请看下一篇文章介绍;

上代码:

代码01 - listview条目布局的xml:

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:padding="10dp"

android:orientation="horizontal">

android:id="@+id/icon"

android:layout_width="40dp"

android:layout_height="40dp"

android:layout_marginRight="10dp"

android:src="@drawable/icon2" />

android:id="@+id/name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_vertical"

android:textSize="16sp"

android:text="陈坤" />

效果图:

ListView条目布局效果图.png

代码02 - mainActivity的布局文件xml:

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="com.geaosu.myapplication.MainActivity">

android:id="@+id/list"

android:layout_width="match_parent"

android:layout_height="wrap_content">

android:id="@+id/loadMore"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="#A4D3FF"

android:gravity="center_horizontal"

android:paddingBottom="20dp"

android:paddingTop="20dp"

android:textSize="16sp" />

效果图:

MainActivity布局效果图.png

代码03 - MainActivity代码

package com.geaosu.myapplication;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private ListView list;

private TextView loadMore;

private String[] arr1 = {"geaosu01", "geaosu02", "geaosu03", "geaosu04", "geaosu05"};

private boolean isShowMore = false;

private MoreAdapter moreAdapter;

private int mCount = 1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

list = findViewById(R.id.list);

moreAdapter = new MoreAdapter();

list.setAdapter(moreAdapter);

loadMore = findViewById(R.id.loadMore);

loadMore.setOnClickListener(this);

loadMore.setText("点击展开");

}

@Override

public void onClick(View view) {

switch (view.getId()) {

case R.id.loadMore:

if (isShowMore) {

loadMore.setText("点击展开");

} else {

loadMore.setText("点击收起");

}

isShowMore = !isShowMore;

moreAdapter.notifyDataSetChanged();

break;

}

}

private class MoreAdapter extends BaseAdapter {

@Override

public int getCount() {

// 重点区域

if (isShowMore) {

return arr1.length;

} else {

return mCount;

}

}

@Override

public Object getItem(int i) {

return arr1[i];

}

@Override

public long getItemId(int i) {

return i;

}

@Override

public View getView(int i, View view, ViewGroup viewGroup) {

View itemView = View.inflate(MainActivity.this, R.layout.item_list, null);

TextView name = itemView.findViewById(R.id.name);

ImageView icon = itemView.findViewById(R.id.icon);

name.setText(arr1[i]);

return itemView;

}

}

}

============== 结束 ==============

努力让世界变得更好 ------ geaosu

android开发点击展开列表,android - listView点击展开收起实现相关推荐

  1. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...

  2. android listview高级,Android 高级控件笔记-列表视图ListView 基本适配器BaseAdapter

    我最近做项目用到了基本适配器BaseAdapter,所以写篇博客总结一下,希望也能对你有所帮助 什么时候用BaseAdapter(同一项存在多个控件,复杂的列表时) Android中Adapter类其 ...

  3. android开关机日志_(android 关机/重启)Android关机/重启流程解析

    --------------------------------Introduction-------------------------- 1. 在PowerManager的API文档中,给出了一个 ...

  4. android仿抖音关注列表,Android仿抖音列表效果

    本文实例为大家分享了Android仿抖音列表效果的具体代码,供大家参考,具体内容如下 当下抖音非常火热,是不是也很心动做一个类似的app吗? 那我们就用RecyclerView实现这个功能吧,关于内存 ...

  5. html5点击显示展开列表,HTML5 - 如何折叠和展开复杂的表格元素

    您好,我需要一个表中的展开和折叠功能.最常见的代码是for,然后在js中为这个tr类定义一个函数. 但是我的情况比图片更复杂.单击"参数1"后,它将展开并显示合并的单元格和2个单元 ...

  6. android之json解析优化,Android开发之json解析

    目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了.感觉java写出来的代码不如python简单明了. 上 ...

  7. android的筛选功能,android实现多条件筛选列表菜单筛选菜单

    PHP多条件分类列表筛选功能开发实例 PHP多条件分类列表筛选功能开发实例,前后台一起实现 后台对接可以拼接sql语句,PHP通过表单值隐藏值筛选,常用又实用! 表单筛选核心函数 function F ...

  8. android md5加密登录,Android开发之MD5加密

    将字符串进行MD5加密,返回加密后的字符串 public static String encode(String password) { try { StringBuffer sb = new Str ...

  9. android studio输入框下划线,Android开发之TextView的下划线添加

    Android开发之TextView高级应用 Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大 ...

最新文章

  1. linux IP类常用命令
  2. 使用SQLQuery
  3. tomcat 控制台乱码 windows下
  4. plsql中文乱码 显示问号
  5. Halcon算子学习:find_surface_model
  6. 关于“就地颠倒句子里的词”面试题
  7. 管理nuget程序包中搜索不到任何程序包
  8. 利用自定义事件实现不同窗体间的通讯 -- C#篇
  9. 小程序二维码(扫描二维码到小程序页面)
  10. 好用的百度文库下载工具: 易读
  11. HX710_24位电子秤AD采集
  12. linux重装系统驱动,linux系统下安装驱动方法
  13. word实用技巧--学一个记一个
  14. window版ELK搭建
  15. 【专题5: 硬件设计】 之 【15.RC滤波电路】
  16. 如何根据自己的需要培养游戏开发技能?又一篇游戏编程入门指南
  17. redis docker 集群搭建
  18. 主数据管理(Master Data Management)
  19. 碳中和专题:碳足迹核算、碳中和顶刊论文、碳排放交易2022
  20. 校招面试真题 | 你的期望薪资是多少?为什么?

热门文章

  1. VC6.0多线程的问题
  2. 大连理工大学计算机学院陈教授,软件学院三项成果被计算机顶级会议INFOCOM 2020录用...
  3. 区块链架构发展和特征以及B/S、C/S、云架构
  4. 2023美赛数学建模思路获取/2023美赛思路ABCDEF题/美赛数学建模
  5. 关于快捷支付,你需要了解的
  6. 知识图谱和语义网概述
  7. TC358840XBG具有哪些特征
  8. dx12 龙书第九章学习笔记 -- 纹理贴图
  9. openshift/origin工作记录(9)——openshift结合jenkins实现持续集成
  10. 进化算法——文化算法