为ListView增加Header

简介:

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

m1 m2

可以看出它的列表上方的图片展示区和下面列表条目是一体的,在上下滚动的时候。而图片展示区不是列表条目。

当然可以分别实现,图片展示区用Gallery,下面用ListView,但是如果横屏,则ListView部分的高度将很短,不方便上下滚动选择。也可以强制竖屏,不过这样用户体验会变差。

其实ListView提供了Header,IMBd实现的图片展示区就是自定义的ListView Header。

写个简单的例子说明这个事情。先写个最简单的。

m3

这里的header就是一个TextView生成的ListView Header部分。在布局的Listview部分:

<ListView android:id="@+id/list" android:layout_width="fill_parent"
android:layout_height="fill_parent" />

在代码中在ListView中加入Header:

listView = (ListView) this.findViewById(R.id.list);
TextView textView = new TextView(this);
textView.setText("header");
listView.addHeaderView(textView);

源代码见:

http://easymorse.googlecode.com/svn/tags/video.demo-0.1.0/

Header部分是可以添加多个的,比如:

image

对Header再做进一步定制。见效果:

image

这里的Header部分使用了自定义视图。

首先要增加一个小房子的图:

image

然后,创建一个针对Header的layout:

image

该文件内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView android:src="@drawable/ic_menu_home"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>

然后在代码中通过inflate的方式把layout加入到header。

listView.addHeaderView(LayoutInflater.from(this).inflate(
R.layout.table_title, null));

源代码见:

http://easymorse.googlecode.com/svn/tags/video.demo-0.1.1/

相关文章
|
7月前
layout control布局奇怪问题记录
layout control布局奇怪问题记录
|
11月前
|
存储 缓存 索引
RecyclerView 动画原理 | pre-layout,post-layout 与 scrap 缓存的关系
RecyclerView 动画原理 | pre-layout,post-layout 与 scrap 缓存的关系
55 0
|
Android开发
NavigationView中,动态增加item以及menu
NavigationView中,动态增加item以及menu
304 0
ViewPager2实现内部Item的动态滚动
最近接到了一个需求,大概类似如下图所示的一个样式(省略了部分细节,不影响大概)。
274 0
|
API Android开发
实现一个带有header和footer功能的RecyclerView
这是我之前一篇老文章了,重新整理了一下在掘金发一下,大家可以参考参考。 RecyclerView是Android 5.0版本引入的一个新的组件,目的是在一些场景中取代之前ListView和GridView,实现性能更优的解决方案。同时RecyclerView的灵活性让它可胜任更多的场景。关于RecyclerView的使用有太多的文章了,大家可以自行搜索。 我们知道RecyclerView很灵活,灵活到很多功能需要我们自己实现,比如ListView和GridView中最常用的Item点击事件。所以在使用了几次后,我准备自己封装一个WrapRecyclerView,实现一些非常常用的功能。
211 0
自定义tableView的section header/footerView时的view复用问题
自定义tableView的section header/footerView时的view复用问题
323 0
|
前端开发 C#
【C#/WPF】ListView的MVVM例子,及禁止拖动ListView的头部Header
原文:【C#/WPF】ListView的MVVM例子,及禁止拖动ListView的头部Header 一个ListView的MVVM简单例子: ...
1544 0
|
Java Android开发 索引
RecyclerView实现多type页面
目录介绍 01.先看看实际需求 02.adapter实现多个type 03.这样写的弊端 04.如何优雅实现adapter封装 好消息 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也...
958 0
|
Android开发
Android RecyclerView增加头部Header和尾部Footer,并实现Item分组
Android RecyclerView增加头部Header和尾部Footer,并实现Item分组 如图所示: 在Android的RecyclerView上实现增加若干头部Header和若干尾部Footer,关键是利用ViewType的类型,然后由本例的抽象类Item返回的类型加载不同的ViewHolder。
3445 0
|
Java Android开发
(周期计划-2)RecyclerView封装系列(1):Header、Footer
​ 2018年技术周期计划:周期计划-2(2018/1/8-2018/1/14) 写在前面 写这边文章的时候是2018年1月12日,也就是18年的第二周,按照原计划应该是关于分割线的封装,不过后来想一想既然提到了封装,那不如多写一写,因此有了这个封装系列。
919 0