废话不多说, 上图:

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. 比特安索孟雄晖:软件授权的新开始
  2. 【bzoj2751】[HAOI2012]容易题(easy) 数论,简单题
  3. 重言式判别c语言中文网,重言式判别 重言式判别源码及课程设计 c语言版.doc
  4. CMake使用详解二(多文件编译)
  5. python3----字典
  6. 將字串轉換為日期型數據的例子
  7. 联想第三季:PC+时代的航母启航?
  8. 重负载Telnet BBS系统优化和维护经验谈
  9. maya_Vray模型属性批量修改插件 v1.01 下载及教程
  10. 水系图一般在哪里找得到_水系电池再发Nature,事实力证将迎来发展的春天!
  11. python批量生成姓名_python——批量生成姓名
  12. Android高能下载库FileDownloader
  13. python培训班大概多少钱
  14. “海大与我“ Scrum Meeting(第九周会议记录)
  15. 简单的网页设计,以学校官网为例
  16. MySQL学习笔记(3)--(DQL查询、MySQL函数)
  17. 全国计算机等级考试二级公共基础知识考试大纲(2022年版)
  18. PHP初级【10天小积累-第十天】
  19. 怎么在Mac上修复/格式化磁盘?
  20. python--查看函数帮助文档及快捷键使用

热门文章

  1. 管式超滤膜的清洗步骤,你知道多少?
  2. 介绍7种分析问题的思维方法
  3. SSL证书安装配置指南(SM2证书)
  4. firefly-rk3288j开发板--linux NFC实验之RC522驱动
  5. 文档与文件比较工具简单汇总
  6. 活动星投票东方风云榜网络评选微信的投票方式线上免费投票
  7. mysql如何修改学生表_MySQL 详细单表增删改查crud语句
  8. 通过帮助中心提高客户满意度,帮助中心的最佳实践方式
  9. 小米人APK改之理(Apk IDE)介绍
  10. openfeign 404