接上一个原生的listview item的伸展收缩效果。

上一个可能做的有些粗糙,效果也没有这个好,上代码。

package com.example.listviewdemo;

import java.io.Serializable;

/**
* 模拟数据包月列表item实体类
* 2015/11/10
* @author
*
*/
public class PurchasedVipInfo implements Serializable {
private static final long serialVersionUID = 1L;
private String item;
private String Ichild;
private boolean isvisibility = false; public String getItem() {
return item;
} public void setItem(String item) {
this.item = item;
} public String getIchild() {
return Ichild;
} public void setIchild(String ichild) {
Ichild = ichild;
} public boolean isIsvisibility() {
return isvisibility;
} public void setIsvisibility(boolean isvisibility) {
this.isvisibility = isvisibility;
}
}
package com.example.listviewdemo;

import java.util.ArrayList;
import java.util.List; import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView; /**
* 已购会员信息详情
* 2015/11/10
* @author
*
*/
public class RegistrationPurchasedVipActivity extends Activity { private ListView nestListView;
private List<PurchasedVipInfo> purchasedVipInfolist;
private RegistrationPurchasedVipAdapter rpvList; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registration_purchased_vip);
initUI();
initData(); } /**
* 初始化数据
*/
private void initData() {
purchasedVipInfolist=new ArrayList<PurchasedVipInfo>();
PurchasedVipInfo priceBean=new PurchasedVipInfo();
priceBean.setItem("预约挂号服务");
priceBean.setIchild("客户可通过400热线、网站、手机客户端等多个渠道全国500多家医院的免费预约挂号服务。服务不限次数,部分医院限制同一就诊人每月不超过6次,以医院要求为准。");
purchasedVipInfolist.add(priceBean); PurchasedVipInfo priceBean1=new PurchasedVipInfo();
priceBean1.setItem("会员专享优惠");
priceBean1.setIchild("客户可通过400热线、网站、手机客户端等多个渠道全国500多家医院的免费预约挂号服务。服务不限次数,部分医院限制同一就诊人每月不超过6次,以医院要求为准。");
purchasedVipInfolist.add(priceBean1); PurchasedVipInfo priceBean2=new PurchasedVipInfo();
priceBean2.setItem("医生咨询/导诊");
priceBean2.setIchild("客户可通过400热线、网站、手机客户端等多个渠道全国500多家医院的免费预约挂号服务。服务不限次数,部分医院限制同一就诊人每月不超过6次,以医院要求为准。");
purchasedVipInfolist.add(priceBean2); PurchasedVipInfo priceBean3=new PurchasedVipInfo();
priceBean3.setItem("放号提醒");
priceBean3.setIchild("客户可通过400热线、网站、手机客户端等多个渠道全国500多家医院的免费预约挂号服务。服务不限次数,部分医院限制同一就诊人每月不超过6次,以医院要求为准。");
purchasedVipInfolist.add(priceBean3); rpvList=new RegistrationPurchasedVipAdapter(this, purchasedVipInfolist);
nestListView.setAdapter(rpvList);
} /**
* 初始化控件
*/
private void initUI() {
nestListView=(ListView) findViewById(R.id.lv_register_healthvip_listview);
}
}
package com.example.listviewdemo;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView; /**
* 会员特权详情adapter
* 2015/11/10
* @author
*
*/
public class RegistrationPurchasedVipAdapter extends BaseAdapter{ private LayoutInflater inflater;
private Context context;
private List<PurchasedVipInfo> priceBeanslist; public RegistrationPurchasedVipAdapter(Context context, List<PurchasedVipInfo> priceBeanslist) {
super();
this.context = context;
this.priceBeanslist = priceBeanslist;
this.inflater=inflater.from(context);
} @Override
public int getCount() {
return priceBeanslist.size();
} @Override
public Object getItem(int position) {
return priceBeanslist.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder=null;
if (convertView==null) {
viewHolder=new ViewHolder();
convertView=inflater.inflate(R.layout.registration_purchased_vip_listview, null);
viewHolder.item=(TextView) convertView.findViewById(R.id.tv_register_healthvip_lvitem);
viewHolder.itemImage=(ImageView) convertView.findViewById(R.id.iv_register_healthvip_lvitem);
viewHolder.Ichild=(TextView) convertView.findViewById(R.id.tv_register_healthvip_lvitemIchild);
convertView.setTag(viewHolder);
}else {
viewHolder = (ViewHolder) convertView.getTag();
}
ViewHolder vh=viewHolder; vh.item.setText(priceBeanslist.get(position).getItem());
vh.Ichild.setText(priceBeanslist.get(position).getIchild());
if (priceBeanslist.get(position).isIsvisibility()) {
vh.Ichild.setVisibility(View.VISIBLE);
vh.itemImage.setImageResource(R.drawable.registration_icon_totop);
}else {
vh.Ichild.setVisibility(View.GONE);
vh.itemImage.setImageResource(R.drawable.registration_icon_toright);
}
vh.itemImage.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
if (priceBeanslist.get(position).isIsvisibility()) {
priceBeanslist.get(position).setIsvisibility(false);
}else {
priceBeanslist.get(position).setIsvisibility(true);
}
notifyDataSetChanged(); //通知listview更新
}
});
return convertView;
} class ViewHolder {
TextView item; //item上文字
ImageView itemImage;//item上指向图标
TextView Ichild;//item 伸展收缩textview
} }
<!-- activity_registration_purchased_vip.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ececec"
android:orientation="vertical" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:orientation="vertical" > <RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:paddingBottom="25dp"
android:paddingLeft="28dp"
android:paddingRight="20dp"
android:paddingTop="34dp" > <TextView
android:id="@+id/tv_register_healthvip_utitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="尊敬的用户 "
android:textColor="#333333"
android:textSize="14sp" /> <TextView
android:id="@+id/tv_register_healthvip_uname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tv_register_healthvip_utitle"
android:layout_toRightOf="@+id/tv_register_healthvip_utitle"
android:text="Superman"
android:textColor="#ff5000"
android:textSize="14sp" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tv_register_healthvip_utitle"
android:layout_toRightOf="@+id/tv_register_healthvip_uname"
android:text=":"
android:textColor="#333333"
android:textSize="14sp" /> <TextView
android:id="@+id/tv_register_healthvip_explain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tv_register_healthvip_utitle"
android:layout_below="@+id/tv_register_healthvip_utitle"
android:layout_marginTop="16dp"
android:lineSpacingExtra="11dp"
android:text="您已经是小白的健康月费会员,您可以享受小百健康为您提供的覆盖全国的预约挂号服务和专业医生咨询服务,小百努力为您提供高效便捷的就医体验"
android:textColor="#333333"
android:textSize="12sp" /> <TextView
android:id="@+id/tv_register_healthvip_viptimeprompt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tv_register_healthvip_utitle"
android:layout_below="@+id/tv_register_healthvip_explain"
android:layout_marginTop="10dp"
android:text="您的会员使用时间:"
android:textColor="#b1b1b1"
android:textSize="12sp" /> <TextView
android:id="@+id/tv_register_healthvip_viptime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tv_register_healthvip_viptimeprompt"
android:layout_toRightOf="@+id/tv_register_healthvip_viptimeprompt"
android:text="20151028-20151128"
android:textColor="#b1b1b1"
android:textSize="12sp" />
</RelativeLayout> <View
android:layout_width="fill_parent"
android:layout_height="10dp"
android:background="#eeeeee" /> <ListView
android:id="@+id/lv_register_healthvip_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:listSelector="#ffffff"
>
</ListView>
</LinearLayout> </LinearLayout>
<!-- registration_purchased_vip_listview.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <RelativeLayout
android:layout_width="match_parent"
android:layout_height="47dp"
android:background="#ffffff"
> <TextView
android:id="@+id/tv_register_healthvip_lvitem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="27dp"
android:text="在线预约"
android:textColor="#333333"
android:textSize="13sp" /> <ImageView
android:id="@+id/iv_register_healthvip_lvitem"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/registration_icon_toright"
android:layout_marginRight="15dp"
android:layout_alignParentRight="true"
android:layout_alignBottom="@+id/tv_register_healthvip_lvitem"
/>
<View
android:layout_width="fill_parent"
android:layout_height="0.5dp"
android:background="#ececec"
android:layout_alignParentBottom="true"
/>
</RelativeLayout> <TextView
android:id="@+id/tv_register_healthvip_lvitemIchild"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="15dp"
android:layout_marginTop="15dp"
android:paddingLeft="27dp"
android:paddingRight="15dp"
android:lineSpacingExtra="10dp"
android:textColor="#999999"
android:textSize="12sp"
android:visibility="gone" /> </LinearLayout>

效果图就不上了,一个会员特权详情的显示页面

主要是这个方法:

  public View getView(final int position, View convertView, ViewGroup parent) 

Android 原生listview item伸展收缩效果 (续)的更多相关文章

  1. Android 原生listview item伸展收缩效果

    Android原生listview做的一个item的伸缩效果.*永远不要让你老大有机会改需求 package com.example.yunkanglast; import java.io.Seria ...

  2. android 修改listview item view 的方法(转)

    android 修改listview item view 的方法   具体的解答办法很简单: 代码如下 : 1.获取需要更新的view int visiblePosition = mListView. ...

  3. Android 自定义ListView Item侧滑删除

    本程序是基于网上开源项目修改而来,具体来源忘了,懒得搜了,如果有不合适的地方,请原作者联系我,我会及时回复和处理的! 该例子程序中主要包含两个ListView,一个是实现侧滑删除,一个是侧滑出菜单,代 ...

  4. android 修改listview item view 的方法

    具体的解答办法很简单: 代码如下 : 1.获取需要更新的view int visiblePosition = mListView.getFirstVisiblePosition(); View vie ...

  5. 【转】Android 实现ListView的滑动删除效果

    http://www.cnblogs.com/weixiao870428/p/3524055.html http://download.csdn.net/download/love_javc_you/ ...

  6. android中listview的item滑动删除效果(已解决listview点击问题)

    领导看到iphone上tableview有个滑动删除的效果,要求在android上也实现,搜了下资料,实现起来比较简单,可弄到后面,居然不能点击了,把一篇文章中的代码修改了一下,捣鼓了一番,搞定,下面 ...

  7. Android中Listview点击item不变颜色以及设置listselector 无效

    Android中Listview点击item不变颜色以及设置listselector 无效 这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listsele ...

  8. Android 实现ListView不可滚动效果

    希望得到的效果是ListView不能滚动,但是最大的问题在与ListView Item还必有点击事件,如果不需要点击事件那就简单了,直接设置ListView.setEnable(false); 如果还 ...

  9. Android ListView item项 显示动画

    (1)使用LayoutAnimation 所谓的布局动画,其实就是为ViewGroup添加显示动画效果,主要用过LayoutAnimationController来控制实现.LayoutAnimati ...

随机推荐

  1. sql server数据同步方案-日志传送

    1 功能描述 本方案采用日志传送模式,把核心数据库(主数据库)定期同步到灾备数据库(辅助服务器)及备份库(辅助服务器,便于其他系统使用,减轻主数据压力),期间,如果发生异常导致无法同步,将以电子邮件. ...

  2. MYSQL分页存储过程及事务处理--转自peace

    MYSQL的分页过程,和事务处理的一个测试过程. /* --名称:MYSQL版查询分页存储过程 by peace 2013-8-14 --输入参数:@fields -- 要查询的字段用逗号隔开 --输 ...

  3. SecureCRT使用的技巧 键盘修改

    secureCRT 修改PageUP,PageDown,Home,End键小trick:http://blog.csdn.net/shark_sq/article/details/6722512 所有 ...

  4. Visual Studio 2008快捷键

    命令行:Devenv 启动VS StudionIsqlw 启动SQL2000查询分析器Sqlwb 启动SQL2005企业管理器Inetmgr 启动IIS管理器大纲Ctrl+M,O折叠所有大纲Ctrl+ ...

  5. 三角形(hd1249)

    三角形 Problem Description 用N个三角形最多可以把平面分成几个区域?   Input 输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后 ...

  6. bokeh-scala

    使用bokeh-scala进行数据可视化 目录 前言 bokeh简介及胡扯 bokeh-scala基本代码 我的封装 总结 一.前言 最近在使用spark集群以及geotrellis框架(相关文章见h ...

  7. js的框架

    Ember.js的一些学习总结   1.1.1 摘要 现在,我们经常都可以看到复杂的JavaScript应用程序,由于这些应用程序变得越来越复杂,一长串的jQuery回调语句或者通过应用程序在各个状态 ...

  8. 如何学好C语言

    我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子.比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便利,但是 ...

  9. 28 个 Unix/Linux 的命令行神器

    28 个 Unix/Linux 的命令行神器   下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些 ...

  10. LINUX总结第13篇:LINUX下动态库及版本号控制

    感觉讲得挺详细 注: ln 命令用法 ln –s 源文件 目标文件 (目标文件即为软链接文件) 可用ls -l查看软链接文件具体指向哪个文件 目录[-] 1. File libhello.c 2. F ...