`

ListView 页眉页脚效果与背景渐变

阅读更多

    大家都知道,在我们调用ListView的addFooterView()方法给List增加一个页脚时,如果列表内容很多,超过了屏幕大小,那么页脚就看不到了,可我们一般想要的效果是如下图所示的,在ListView的内容超过屏幕时,页脚还在屏幕的底部。

 

本文将介绍上图所示的ListView效果,同时介绍一下在android中如何实现渐变效果,就像上图中的页眉页脚的背景色一样。

实现上面的效果主要使用几个RelativeLayout标签和ListView组合即可,main.xml 代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" 
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	
	<RelativeLayout android:id="@+id/listHeader"
		android:background="@drawable/jbshape"
		android:layout_alignParentTop="true"
		android:gravity="center_horizontal" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content">
		<TextView android:text="文本居中显示" 
			android:textColor="#ff0000"
			android:textSize="18dip"
			
			android:layout_width="fill_parent"
			android:layout_height="wrap_content"
			android:gravity="center" />
	</RelativeLayout>
	
	<RelativeLayout android:id="@+id/listFooter"
		android:background="@drawable/jbshape"
		android:gravity="center_horizontal"
		android:layout_alignParentBottom="true" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		>
		<Button android:id="@+id/prePage" 
			android:layout_width="wrap_content"
			android:layout_height="wrap_content" 
			android:text="上一页"
			android:layout_alignParentLeft="true" />
		<Button 
			android:layout_width="wrap_content"
			android:layout_gravity="right" 
			android:layout_height="wrap_content"
			android:text="下一页" 
			android:layout_toRightOf="@id/prePage" />
	</RelativeLayout>
	
	<ListView android:id="@android:id/list" 
		android:layout_width="fill_parent"
		android:layout_height="fill_parent" 
		android:layout_below="@id/listHeader"
		android:layout_above="@id/listFooter"/>
		
	<TextView android:id="@android:id/empty" 
	    android:layout_width="fill_parent" 
	    android:layout_height="wrap_content" 
	    android:text="Not Data yet!"/>
</RelativeLayout>

 

几个关键点:
1、在页眉(id为listHeader)使用属性android:layout_alignParentTop=”true”, 声明页眉部分与父视图的顶部对齐。


2、在页脚(id为listFooter)使用属性android:layout_alignParentBottom=”true” 声明其与父视图的底部对齐。

3、在 ListView中使用属性android:layout_below=”@id/listHeader” android:layout_above=”@id/listFooter” 声明ListView位于listHeader的下方,位于listFooter的上方。

 

这样我们的页眉页脚效果就实现了。

 

再来看看是怎么实现渐变的?

 

我们在res/drawable目录下新建一个叫jbshape.xml的文件,内容如下所示:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
	android:shape="rectangle">
	<gradient android:startColor="#509245" android:centerColor="#3e8532"
		android:endColor="#509245" android:type="linear" android:angle="90"
		android:centerX="0.5" android:centerY="0.5" />
	<padding android:left="7dp" android:top="7dp" android:right="7dp"
		android:bottom="7dp" />
	<corners android:radius="4dp" />
</shape>

 

这里就不多讲了,相信你一看就能看懂,android:shape 配置的是图形的形式,主要包括方形、圆形等,本例中为方形。gradient节点主要配置起点颜色、终点颜色、中间点的坐标、中间点的颜色、渐变角度(90度为上下渐变,0为左右渐变),padding节点主要配置上下左右边距,corners节点配置四周园角的半径。

android/sdk/docs/guide/topics/resources/drawable-resource.html 中有具体设置.

 

使用渐变就更简单了,如第一部分代码中所示的,直接用android:background=”@drawable/jbshape” 配置背景为刚才配置的渐变图形即可。

 

分享到:
评论

相关推荐

    ListView页眉页脚效果

    `ListView页眉页脚效果`是指在ListView的顶部和底部添加自定义视图,通常用于显示广告、提示信息或者分隔不同数据集。本篇将详细介绍如何实现ListView的页眉(Header)和页脚(Footer)效果。 首先,我们需要理解...

    GridView的页眉页脚

    2. **添加渐变效果**:在drawable资源文件中定义渐变背景。 ```xml android:startColor="#FF0000" android:endColor="#00FF00" android:angle="90" /&gt; ``` 3. **模糊处理**:使用第三方库如BlurKit或...

    Qt Qml ListView上拉加载数据 Demo源码

    这通常通过计算ListView的`count`属性与可见项数量的差值来实现。 4. **页脚组件**: 创建一个用于显示加载状态的页脚组件,比如一个简单的文本或进度条。在页脚组件中,我们可以显示“加载中”、“加载完毕”或...

    listview页面页脚的应用及动画效果

    在标题“listview页面页脚的应用及动画效果”中,我们关注的重点是ListView的Footer View和与其相关的动画效果。Footer View通常用于添加额外的操作区域,比如加载更多、设置按钮等。在此场景下,描述提到了点击item...

    WPF ListView 选择和鼠标移上去行背景颜色的去除与更改

    本文将深入探讨如何自定义ListView的选择和鼠标悬停时的行背景颜色,以及如何通过MVVM(Model-View-ViewModel)模式来实现这一目标。 首先,我们要了解ListView的基本工作原理。ListView通过ItemsControl的子类实现...

    listview实现表格效果,带表格线

    标题“listview实现表格效果,带表格线”表明我们要讨论的是如何利用ListView来模拟表格布局,并添加分割线以清晰地展示每个单元格的边界。 首先,我们要理解ListView的基本结构。ListView由多个ListView项...

    android 动态改变listview某一条的背景颜色

    我们常见的androidlistview 都是整体改变背景颜色,我今天上传的是 动态改变listview 其中一条或者多条的背景颜色,以及改变item的颜色。 不需要添加list的点击事件 就可以完成。

    LISTVIEW的item效果

    9. **ListView与RecyclerView的区别**:虽然RecyclerView是现代Android开发更推荐的列表组件,但理解ListView的原理有助于理解RecyclerView的工作机制。 10. **性能优化**:包括合理使用convertView复用,避免大量...

    listview保留选中效果2

    标题"listview保留选中效果2"表明我们要探讨的是如何在ListView滚动时仍能保持所选项目的高亮状态,即选中效果不因滚动而消失。描述中的"listview保留选中效果2"进一步强调了这是对之前讨论的延续或改进。 要实现...

    Android-滑动listview标题置顶listview吸顶效果

    本知识点主要探讨如何实现“滑动ListView时标题置顶”和“ListView吸顶效果”,以及如何使安卓系统状态栏透明化。这些功能可以为用户带来更流畅、更具吸引力的交互体验。 首先,滑动ListView时标题置顶的效果通常被...

    安卓app开发项目-ListView上下翻页效果(源码).zip

    安卓app开发项目-ListView上下翻页效果(源码).zip安卓app开发项目-ListView上下翻页效果(源码).zip安卓app开发项目-ListView上下翻页效果(源码).zip安卓app开发项目-ListView上下翻页效果(源码).zip安卓app开发项目-...

    与圆角listView类似的效果

    "与圆角ListView类似的效果"就是一个这样的尝试,它通过使用TextView模拟了ListView的展示方式,并添加了圆角以及点击效果。下面将详细探讨如何实现这样的功能。 首先,我们来理解"圆角ListView"的概念。传统的...

    listview中改变item背景颜色

    而如果需要更复杂的布局效果,如渐变、圆角或动画,ItemDecoration可能更为合适。记得在实际应用中,考虑到性能优化,避免在`getView()`方法中执行过于复杂的操作,以及合理利用缓存,以提高ListView的滚动流畅性。 ...

    ListView的高级显示效果

    ListView的核心在于Adapter,它负责将数据与视图进行绑定。要实现高级显示效果,我们需要自定义Adapter,通常继承自BaseAdapter。自定义Adapter需要重写以下方法: 1. `getCount()`: 返回ListView的项数。 2. `...

    android listview item背景色点击效果实例

    当用户与列表交互时,为了提供良好的用户体验,通常需要实现点击项时的视觉反馈,比如改变item的背景颜色。本实例“android listview item背景色点击效果”正是针对这一需求进行的开发。 在Android中,ListView的每...

    ListView缩略图模式与WINDOWS一样的效果

    ListView自绘,缩略图模式查看,去掉选中后的背景色,与WINDOWS一样的查看效果

    Android ListView上下翻页效果

    本文将深入探讨如何在ListView中实现上下翻页效果,这通常涉及到数据加载策略、滚动监听以及适配器的巧妙使用。 首先,我们要理解ListView的基本工作原理。ListView通过复用已创建的View来提高性能,这就是著名的...

    Listview 滑动 贴合效果

    "Listview 滑动 贴合效果"是指在用户滑动ListView时,能够使某一个列表项始终贴合在屏幕的顶端,这通常应用于实现类似“置顶”或“固定头部”的功能。这种效果可以提高用户体验,让用户更容易关注到特定的列表项,...

Global site tag (gtag.js) - Google Analytics