expandablelistView 可展开的列表

这个东西用法基本固定,不知道能不能做三级的展开。
界面代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ExpandableListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:childIndicator="@mipmap/ic_launcher"
android:childIndicatorStart="380dp"
android:childIndicatorEnd="410dp"/>
</LinearLayout>
主程序代码
package com.example.expandablelistview import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
import android.widget.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) val adapter = object:BaseExpandableListAdapter()
{
internal var logos = intArrayOf(R.drawable.p, R.drawable.z, R.drawable.t)
private val armTypes = arrayOf("神族兵种", "虫族兵种", "人族兵种")
private val arms = arrayOf(arrayOf("狂战士", "龙骑士", "黑暗圣堂", "电兵"),
arrayOf("小狗", "刺蛇", "飞龙", "自爆飞机"),
arrayOf("机枪兵", "护士MM", "幽灵"))
private val textView: TextView
get()
{
val textView = TextView(this@MainActivity)
val lp = AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT)
textView.layoutParams = lp
textView.gravity = Gravity.CENTER_VERTICAL or Gravity.START
textView.setPadding(36, 10, 0, 10)
textView.textSize = 20f
return textView
}
// 获取指定组位置、指定子列表项处的子列表项数据
override fun getChild(groupPosition: Int, childPosition: Int): Any
{
return arms[groupPosition][childPosition]
} override fun getChildId(groupPosition: Int, childPosition: Int): Long
{
return childPosition.toLong()
} override fun getChildrenCount(groupPosition: Int): Int
{
return arms[groupPosition].size
} // 该方法决定每个子选项的外观
override fun getChildView(groupPosition: Int, childPosition: Int,
isLastChild: Boolean, convertView: View?, parent: ViewGroup): View
{
val textView: TextView
if (convertView == null)
{
textView = this.textView
textView.text = getChild(groupPosition, childPosition).toString()
}
else
{
textView = convertView as TextView
}
return textView
} // 获取指定组位置处的组数据
override fun getGroup(groupPosition: Int): Any
{
return armTypes[groupPosition]
} override fun getGroupCount(): Int
{
return armTypes.size
} override fun getGroupId(groupPosition: Int): Long
{
return groupPosition.toLong()
} // 该方法决定每个组选项的外观
override fun getGroupView(groupPosition: Int, isExpanded: Boolean,
convertView: View?, parent: ViewGroup): View
{
val ll: LinearLayout
if (convertView == null)
{
ll = LinearLayout(this@MainActivity)
ll.orientation = LinearLayout.HORIZONTAL
val logo = ImageView(this@MainActivity)
logo.setImageResource(logos[groupPosition])
ll.addView(logo)
val textView = this.textView
textView.text = getGroup(groupPosition).toString()
ll.addView(textView)
}
else
{
ll = convertView as LinearLayout
}
return ll
} override fun isChildSelectable(groupPosition: Int, childPosition: Int): Boolean
{
return true
} override fun hasStableIds(): Boolean
{
return true
}
}
val expandListView = findViewById<ExpandableListView>(R.id.list)
expandListView.setAdapter(adapter)
}
}
expandablelistView 可展开的列表的更多相关文章
- 可展开的列表组件——ExpandableListView深入解析
可展开的列表组件--ExpandableListView深入解析 一.知识点 1.ExpandableListView常用XML属性 2.ExpandableListView继承BaseExpanda ...
- 【转】 HVTableView创建--展开/折叠列表能 AAShareBubbles社会分享动画组
原文: http://blog.csdn.net/billfanggs/article/details/17279969 HVTableView HVTableView是UITableView(带有展 ...
- android之ExpandableListView 无法展开
1.Button 对,没错,就是这个button组件,不知道出现都少次过问题,很多都是它造成的! 最常见的问题:ExpandableListView无法展开,OnItemClickListener不响 ...
- 微信小程序 - 展开收缩列表
代码源自于:微信小程序示例官方 index.wxml <block wx:for-items="{{list}}" wx:key="{{item.id}}" ...
- (转载)自定义ExpandableListView,实现二级列表效果
先看效果图: 上图是我们要实现的效果,那么现在我们开始着手去做,主要分为以下几步: 一丶我们需要根据效果图去思考该如何动手,从上图分析看,我们可以用一个相对布局RelativeLayout来完成gro ...
- 【深入篇】自定义ExpandableListView,实现二级列表效果
先看效果图: 上图是我们要实现的效果,那么现在我们开始着手去做,主要分为以下几步: 一丶我们需要根据效果图去思考该如何动手,从上图分析看,我们可以用一个相对布局RelativeLayout来完成gro ...
- Python代码阅读(第11篇):展开嵌套列表
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码 本篇阅读的代码实现了展开嵌套列表的功能,将一个嵌套的list展开成一个一维list(不改变原有列表的顺序). 本篇阅读的代 ...
- ExpandableListView(可展开的列表组件)的说明以及其用法
ExpandableListView的用法和ListView非常像,只是其所显示的列表项应该由ExpandableListAdapter提供,下面是它的xml属性及说明: 然而,接下来是用事实说话了: ...
- ExpandableListView实现展开更多和收起更多
[需求]: 如上面图示 当点开某个一级菜单的时候,其他菜单收起: 子级菜单默认最多5个: 多于5个的显示"展开更多" 点击"展开更多",展开该级所有子级菜单,同 ...
随机推荐
- P1801 黑匣子[堆]
题目描述 Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个Black Box要处理一串命令. 命令只有两种: ...
- python制作的翻译器基于爬取百度翻译【笔记思路】
#!/usr/bin/python # -*- coding: cp936 -*- ################################################### #基于百度翻 ...
- 「CQOI2015」选数
「CQOI2015」选数 题目描述 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都 ...
- 【测试工具】moco入门(一)
转自:https://www.cnblogs.com/tangqiu/p/9493147.html 简单来说,Moco就是解决了开发前端时没有后端支持,开发接口时依赖没有到位的尴尬场景.当然Moco的 ...
- 关于redis的持久化策略
Redis的持久化 Redis虽然是基于内存的存储系统,但是它本身是支持内存数据的持久化的,而且提供两种主要的持久化策略:RDB快照和AOF日志. Redis的RDB快照 Redis支持将当前数据的快 ...
- java EL表达式中${param.name}详细
在浏览器地址输入,表示传入一个参数test,值为123 URL:http://localhost:8888/Test/index.jsp?test=123 <body> ${test} $ ...
- VC中文件路径问题
环境:xp+vs2010 1.如果出现这样的路径,input.txt表示在解决方案目录(前提是项目包在解决方案目录下的一个包)下,也就是与你的解决方案XXX.sln平行. ifstream in(&q ...
- Tensorflow细节-P80-深度神经网络
1.本节多为复习内容,从以下图片可见一般: 2.学会使用 from numpy.random import RandomState 然后 rdm = RandomState(1) dataset_si ...
- php获取本地化时间戳函数
在实际的工作中我们还需要经常用到指定某个时间生成. 例如:需要找到昨天到今天此时此刻的注册用户. 那么我们需要做两件事情: 1.得到当前的时间unix时间戳.用time()函数就可以直接搞定大理石平台 ...
- 学到了林海峰,武沛齐讲的Day35 完 协程
day3 requests.get 爬网页 greenlet 协程模块 还有asy!!!模快(后续版本) day4 事件驱动 day5 基础学习 day6 基础学习 da ...