为ListView增加Header

176
回复
2117645
查看
  [复制链接]

206

主题

1622

帖子

2721

安币

Android大神

Rank: 6Rank: 6

发表于 2011-11-7 20:48:33 | 显示全部楼层 |阅读模式
本帖最后由 anzhuo 于 2011-11-7 21:41 编辑

要实现类似IMBd类似的布局。


可以看出它的列表上方的图片展示区和下面列表条目是一体的,在上下滚动的时候。而图片展示区不是列表条目。
当然可以分别实现,图片展示区用Gallery,下面用ListView,但是如果横屏,则ListView部分的高度将很短,不方便上下滚动选择。也可以强制竖屏,不过这样用户体验会变差。
其实ListView提供了Header,IMBd实现的图片展示区就是自定义的ListView Header。
写个简单的例子说明这个事情。先写个最简单的。
这里的header就是一个TextView生成的ListView Header部分。在布局的Listview部分:

  1. <ListView android:id="@+id/list" android:layout_width="fill_parent"
  2.     android:layout_height="fill_parent" />
复制代码

在代码中在ListView中加入Header:
  1. listView = (ListView) this.findViewById(R.id.list);
  2. TextView textView = new TextView(this);
  3. textView.setText("header");
  4. listView.addHeaderView(textView);
复制代码
源代码见:


Header部分是可以添加多个的,比如:
对Header再做进一步定制。见效果:
这里的Header部分使用了自定义视图。
首先要增加一个小房子的图:
然后,创建一个针对Header的layout:
该文件内容:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical" android:layout_width="fill_parent"
  4.     android:layout_height="fill_parent"  >
  5.     <ImageView android:src="@drawable/ic_menu_home"
  6.         android:layout_width="wrap_content" android:layout_height="wrap_content" />
  7. </LinearLayout>
复制代码

然后在代码中通过inflate的方式把layout加入到header。
  1. listView.addHeaderView(LayoutInflater.from(this).inflate(
  2.         R.layout.table_title, null));
复制代码
源代码见:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

不错,学习下  发表于 2012-12-20 21:53

0

主题

18

帖子

30

安币

初级码农

Rank: 1

发表于 2011-11-26 01:29:13 | 显示全部楼层
喜欢,豆豆又来了

46

主题

287

帖子

1698

安币

Android大神

Rank: 6Rank: 6

QQ达人

发表于 2011-11-26 10:08:15 | 显示全部楼层
不错,谢谢分享

0

主题

39

帖子

82

安币

初级码农

Rank: 1

发表于 2012-1-15 22:19:57 | 显示全部楼层
哈哈  学习了

0

主题

21

帖子

37

安币

初级码农

Rank: 1

发表于 2012-1-19 13:21:23 | 显示全部楼层
加豆豆了

0

主题

425

帖子

2787

安币

Android大神

Rank: 6Rank: 6

QQ达人

发表于 2012-1-29 11:10:22 | 显示全部楼层
谢谢分享

0

主题

60

帖子

67

安币

初级码农

Rank: 1

发表于 2012-1-29 15:28:05 | 显示全部楼层
谢谢分享

1

主题

32

帖子

38

安币

程序猿

Rank: 2

发表于 2012-2-13 13:09:03 | 显示全部楼层
谢谢分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )