`
gryphone
  • 浏览: 433684 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

ListView 展开/隐藏

 
阅读更多

ListView 本意只是:让数据和TextView一次绑定 能自适应数据的长度 而自动+/-行数

 

 

但是 现在 要求 ListView 能支持 展开/隐藏 即:当点中某项时 其能显示更多内容 可以么? 当然

 

 

[代码 步骤]

1. 定义一下图片及文字数组 供显示用

int[] image = {
		R.drawable.beijing1_s,R.drawable.beijing2_s,R.drawable.beijing3_s,R.drawable.beijing4_s,R.drawable.beijing5_s
	};
	String[] text = {
		"贝贝","晶晶","欢欢","盈盈","妮妮"
	};

 

 

2. 定义BaseAdapter 并根据点击的ID 做比较 决定是否添加更多内容

public class ListMoreAdapter extends BaseAdapter {
    	Activity activity;
    	LayoutInflater lInflater;
    	
    	public ListMoreAdapter(Activity a){
    		activity = a;
    		
    		lInflater = activity.getLayoutInflater();
    	}
    	
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return image.length;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			LinearLayout layout = new LinearLayout(activity);
	        layout.setOrientation(LinearLayout.VERTICAL);
	        
	        layout.addView(addTitleView(position));
	        
	        
	        if(ID==position){
	        	layout.addView(addCustomView(position));
	        }
	        
			return layout;
		}
    	
		
		public View addTitleView(int i){
			LinearLayout layout = new LinearLayout(activity);
	        layout.setOrientation(LinearLayout.HORIZONTAL);
	        
	        ImageView iv = new ImageView(activity);
	        iv.setImageResource(image[i]);
	        
	        layout.addView(iv,
	        		new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
	        
	        
	        TextView tv = new TextView(activity);
	        tv.setText(text[i]);
	        
	        layout.addView(tv,
	        		new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
	        
	        layout.setGravity(Gravity.CENTER);
	        return layout;
		}
		
		
		public View addCustomView(int i){
			View view = new View(activity);
			
			switch(i){
			case 0:
				ImageView iv = new ImageView(activity);
				iv.setImageResource(R.drawable.beijing4_b);
				
				view = iv;
				break;
				
			case 1:
				view = lInflater.inflate(R.layout.layout1, null);
				break;
				
			case 2:
				
				break;
			}
			
			return view;
			
		}
    }

 

 

3. 代码比较简单 没什么细说的 不理解的请跟帖 好答复之

 

4. emulator 运行截图:

 

 

分享到:
评论
11 楼 595755330 2010-11-30  
我想弄过竖着的,但是弄不起,就像附件一样的
10 楼 sunburst 2010-03-16  
gryphone 写道
sunburst 写道
gryphone 写道
sunburst 写道
gryphone 写道
sunburst 写道
SimpleAdapter是否可以实现这种效果?我尝试把你的代码写到一个继承SimpleAdapter的自定义Adapter里面去,似乎不行

应该可以吧 我的就是 extends BaseAdapter
不过你干嘛不直接 extends BaseAdapter呢?干嘛使用SimpleAdapter?
不解?有特殊要求么?

因为我用simpleAdapter绑定了一个数据样式,就是图标加一个大标题加一日期,然后再想实现你这个效果点击后展开

那那也可以直接extends BaseAdapter
至于extends SimpleAdapter 实话说 我没试过 不过应该一样的吧 因为其实际也是 extends BaseAdapter 不过你也可以试试

我已经extends SimpleAdapter 了,所以不能extends BaseAdapter了,我尝试了一下,在SimpleAdapter,getview后面的加上楼主代码,在 SimpleAdapter原来getview中就会报错,去掉楼主的代码后正常

个人感觉 如果extends SimpleAdapter 的话 可能要重新定义其构造函数 混入你自己的参数

已经是重新定义其构造函数了的
9 楼 gryphone 2010-03-15  
sunburst 写道
gryphone 写道
sunburst 写道
gryphone 写道
sunburst 写道
SimpleAdapter是否可以实现这种效果?我尝试把你的代码写到一个继承SimpleAdapter的自定义Adapter里面去,似乎不行

应该可以吧 我的就是 extends BaseAdapter
不过你干嘛不直接 extends BaseAdapter呢?干嘛使用SimpleAdapter?
不解?有特殊要求么?

因为我用simpleAdapter绑定了一个数据样式,就是图标加一个大标题加一日期,然后再想实现你这个效果点击后展开

那那也可以直接extends BaseAdapter
至于extends SimpleAdapter 实话说 我没试过 不过应该一样的吧 因为其实际也是 extends BaseAdapter 不过你也可以试试

我已经extends SimpleAdapter 了,所以不能extends BaseAdapter了,我尝试了一下,在SimpleAdapter,getview后面的加上楼主代码,在 SimpleAdapter原来getview中就会报错,去掉楼主的代码后正常

个人感觉 如果extends SimpleAdapter 的话 可能要重新定义其构造函数 混入你自己的参数
8 楼 sunburst 2010-03-15  
gryphone 写道
sunburst 写道
gryphone 写道
sunburst 写道
SimpleAdapter是否可以实现这种效果?我尝试把你的代码写到一个继承SimpleAdapter的自定义Adapter里面去,似乎不行

应该可以吧 我的就是 extends BaseAdapter
不过你干嘛不直接 extends BaseAdapter呢?干嘛使用SimpleAdapter?
不解?有特殊要求么?

因为我用simpleAdapter绑定了一个数据样式,就是图标加一个大标题加一日期,然后再想实现你这个效果点击后展开

那那也可以直接extends BaseAdapter
至于extends SimpleAdapter 实话说 我没试过 不过应该一样的吧 因为其实际也是 extends BaseAdapter 不过你也可以试试

我已经extends SimpleAdapter 了,所以不能extends BaseAdapter了,我尝试了一下,在SimpleAdapter,getview后面的加上楼主代码,在 SimpleAdapter原来getview中就会报错,去掉楼主的代码后正常
7 楼 gryphone 2010-03-15  
wjb_forward 写道
请LZ把本例的完整的代码发上来

OK!
6 楼 wjb_forward 2010-03-14  
请LZ把本例的完整的代码发上来
5 楼 nypisces 2010-03-11  
为什么不用现成的ExpandableListView呢
4 楼 gryphone 2010-03-11  
sunburst 写道
gryphone 写道
sunburst 写道
SimpleAdapter是否可以实现这种效果?我尝试把你的代码写到一个继承SimpleAdapter的自定义Adapter里面去,似乎不行

应该可以吧 我的就是 extends BaseAdapter
不过你干嘛不直接 extends BaseAdapter呢?干嘛使用SimpleAdapter?
不解?有特殊要求么?

因为我用simpleAdapter绑定了一个数据样式,就是图标加一个大标题加一日期,然后再想实现你这个效果点击后展开

那那也可以直接extends BaseAdapter
至于extends SimpleAdapter 实话说 我没试过 不过应该一样的吧 因为其实际也是 extends BaseAdapter 不过你也可以试试
3 楼 sunburst 2010-03-11  
gryphone 写道
sunburst 写道
SimpleAdapter是否可以实现这种效果?我尝试把你的代码写到一个继承SimpleAdapter的自定义Adapter里面去,似乎不行

应该可以吧 我的就是 extends BaseAdapter
不过你干嘛不直接 extends BaseAdapter呢?干嘛使用SimpleAdapter?
不解?有特殊要求么?

因为我用simpleAdapter绑定了一个数据样式,就是图标加一个大标题加一日期,然后再想实现你这个效果点击后展开
2 楼 gryphone 2010-03-10  
sunburst 写道
SimpleAdapter是否可以实现这种效果?我尝试把你的代码写到一个继承SimpleAdapter的自定义Adapter里面去,似乎不行

应该可以吧 我的就是 extends BaseAdapter
不过你干嘛不直接 extends BaseAdapter呢?干嘛使用SimpleAdapter?
不解?有特殊要求么?
1 楼 sunburst 2010-03-10  
SimpleAdapter是否可以实现这种效果?我尝试把你的代码写到一个继承SimpleAdapter的自定义Adapter里面去,似乎不行

相关推荐

    网络数据ListView展开与隐藏加强版

    "网络数据ListView展开与隐藏加强版"是一个专门优化处理网络数据加载,并具备展开、隐藏功能的ListView实现,尤其适用于显示网络上的大数据列表。它不仅提高了用户体验,还有效地管理了内存,避免一次性加载过多数据...

    ListView点击展开与隐藏

    "ListView点击展开与隐藏"这一功能是ListView自定义适配器(Adapter)和监听器(OnClickListener)的常见应用场景,通常用于实现类似折叠式菜单或者树状结构的效果。在这个场景中,用户点击某一行ListView项时,该行...

    listview的item单项展开及隐藏

    如果文件名`ListViewItemInvisible`指的是一个示例项目,那么它很可能包含了一个简单的Adapter实现和一个带有隐藏/显示功能的ListViewItem布局。通过查看这个项目的代码,我们可以学习如何在实际项目中应用这种效果...

    实现listview的展开与隐藏项目源码

    本资源提供了一个实现ListView展开与隐藏项目的源码示例,有助于开发者更好地理解和掌握如何在ListView中添加动态效果。 1. **ListView的基本原理** - ListView是基于Adapter的,它通过Adapter将数据转化为View...

    ListView Item点击展开隐藏项

    本篇将详细介绍如何实现ListView的Item点击展开隐藏项,并提供三种不同效果的实现方式:单条目展开、多条目展开以及复杂布局的展开示例。 首先,我们需要在`ListView`的`Adapter`中处理点击事件。在`getView()`方法...

    Listview嵌套Listview,支持折叠展开

    - 创建一个自定义的Adapter,继承自`BaseAdapter`或`ArrayAdapter`,在这个Adapter中,你需要为每个父项创建一个布局,该布局包含一个可以触发子ListView展开/折叠的按钮。 - 在`getView()`方法中,根据当前项的...

    ListView列表展开和隐藏(适合网络单击多次获取模式)

    标题“ListView列表展开和隐藏(适合网络单击多次获取模式)”涉及到的核心技术点是动态加载和优化ListView的性能,尤其是对于网络数据的处理策略。以下是这些知识点的详细说明: 1. **ListView的数据适配器**:在...

    FloatingActionButton实现 展开/折叠 的多级悬浮菜单

    - `RecyclerView`或`ListView`展示菜单项,提高性能和可扩展性。 - `Snackbar`或`DialogFragment`提供反馈,让用户知道操作是否成功。 - `LiveData`或`RxJava`进行数据绑定和响应式编程,使菜单的状态与UI同步。 总...

    点击ListView的Item实现隐藏与展开

    本教程将详细讲解如何实现ListView的Item在点击时实现隐藏与展开的效果。 首先,我们需要创建一个自定义的ListView适配器。这个适配器将负责填充数据并控制每个Item的可见性状态。适配器通常继承自BaseAdapter,...

    android动画实现ListView折叠展开

    1. **折叠与展开逻辑**:在ListView中,我们可以为每个header设置一个状态(如展开/折叠),并在点击事件中切换这个状态。同时,我们还需要维护一个数据结构,记录每个header与其对应的子项之间的关系。 2. **...

    ListView上拉隐藏头布局 下拉显示

    `ListView上拉隐藏头布局 下拉显示`的实现涉及到自定义ListView头部视图的交互效果,这种效果常见于电商平台的筛选界面,如淘宝的最新版本。这个设计使得用户在下拉时可以显示额外的筛选选项或功能,而上拉则会隐藏...

    实现可以展开/折叠的树型菜单

    在OpenHarmony操作系统中,开发一个可展开/折叠的树型菜单是构建用户界面时常见的需求,这通常涉及到ListView组件的使用。ListView是一种列表视图组件,能够展示一系列可滚动的项目,非常适合用来构建层级结构的数据...

    ListView学习(二) 点击条目隐藏展开正文

    在“ListView学习(二) 点击条目隐藏展开正文”这个主题中,我们将会深入探讨如何在ListView的每个条目上实现点击事件,以隐藏或展开对应的正文内容。这涉及到自定义Adapter、视图复用以及触摸事件处理等关键知识点...

    listview展开收起item

    "listview展开收起item"这个主题涉及的是ListView的一项高级功能,即为每个列表项添加可展开和收起的子项,通常用于实现分类或者层级结构的展示。下面我们将深入探讨如何实现这一功能。 首先,我们需要一个自定义的...

    android ListView Item展开效果

    ExpandableListView是ListView的一个扩展,它不仅支持普通的单行显示,还能处理分组(Group)和子项(Child)的概念,允许用户展开或折叠特定的分组来显示或隐藏其子项。 要实现这个功能,首先我们需要创建两个数据...

    android ListView展开和收起

    `ExpandableListView`是它的扩展,支持子项展开和收起功能,但有时我们可能需要在普通的ListView中实现类似的效果,即“展开和收起”功能。这篇教程将详细讲解如何在不使用ExpandableListView的情况下,让ListView...

    android ListView向下展开 抽屉效果

    "android ListView向下展开 抽屉效果"是指在用户点击ListView中的某一项时,该项会像抽屉一样向下展开,显示更多的信息或者子项。这种效果常用于实现菜单、导航栏或者详细信息的展示,提升了用户体验和交互性。下面...

    listviewgroup

    本教程将重点讲解如何利用ListView实现类似好友列表或手机通讯录的效果,即通过ListViewGroup来实现数据的展开与收起功能。这对于初学者来说是一个很好的实践项目,可以帮助他们深入理解ListView的工作原理和使用...

    listview 显示多级树型结构

    在ListView中,每一级都代表一个节点,节点可以展开(打开)或折叠(关闭),以显示或隐藏其子节点。这种结构为用户提供了更直观的方式来浏览和操作数据。 1. **数据模型设计** 在实现多级树型ListView前,我们...

    点击ListView的item时显示隐藏view

    为了实现更复杂的操作,例如在展开隐藏视图后执行某些功能,可以在点击监听器中添加相应的逻辑。例如,可以添加一个动画效果,使隐藏视图平滑地展开或收缩,提升用户体验。 ```java // 使用动画展开/隐藏视图 ...

Global site tag (gtag.js) - Google Analytics