`
djun100
  • 浏览: 181167 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android常见控件使用经验之——ListView

 
阅读更多

属性

首先stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和false

android:stackFromBottom="true"


第二transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部。
android:transcriptMode="alwaysScroll"


第三cacheColorHint属性,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。

如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了


第四divider属性,该属性作用是每一项之间需要设置一个图片做为间隔,或是去掉item之间的分割线

android:divider="@drawable/list_driver" 其中 @drawable/list_driver 是一个图片资源,如果不想显示分割线则只要设置为android:divider="@drawable/@null"就可以了


第五fadingEdge属性,上边和下边有黑色的阴影

android:fadingEdge="none"设置后没有阴影了~


第六scrollbars属性,作用是隐藏listView的滚动条,

android:scrollbars="none"与setVerticalScrollBarEnabled(true);的效果是一样的,不活动的时候隐藏,活动的时候也隐藏


第七fadeScrollbars属性,android:fadeScrollbars="true" 配置ListView布局的时候,设置这个属性为true就可以实现滚动条的自动隐藏和显示。


第八fastScrollEnabled属性,

很多开发者不知道ListView列表控件的快速滚动滑块是如何启用的,这里Android开发网告诉大家,辅助滚动滑块只需要一行代码就可以搞定,如果你使用XML布局只需要在ListView节点中加入 android:fastScrollEnabled="true" 这个属性即可,而对于Java代码可以通过myListView.setFastScrollEnabled(true); 来控制启用,参数false为隐藏。 还有一点就是当你的滚动内容较小,不到当前ListView的3个屏幕高度时则不会出现这个快速滚动滑块,同时该方法仍然是AbsListView的基础方法,可以在ListView或GridView等子类中使用快速滚动辅助。


第九drawSelectorOnTop属性

When set to true, the selector will be drawn over the selecteditem. Otherwise the selector is drawn behind the selected item. Thedefault value is false.

android:drawSelectorOnTop="true"<wbr>点击某一条记录,颜色会显示在最上面,记录上的文字被遮住,所以点击文字不放,文字就看不到</wbr>

android:drawSelectorOnTop="false"点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的

特性

滚动监听

当为listview设置点击监听和滚动监听后,初始进入界面时会触发两次onScroll(),当点击事件触发时,会依次执行onScroll()→onClick()→onScroll()。

添加按钮后自身无响应

Button获取了焦点, 导致ListView没有了焦点, 所以响应不了。

我们只要在Button上加上两句Xml的属性即可。

Android:focusable="false"
Android:focusableInTouchMode="false"

item内button的响应事件

viewHolder.btn_Track.setOnClickListener(new btnOnClick(position));

private class btnOnClick implements OnClickListener{ 
int position ; 
public btnOnClick(int pos)
{
position=pos;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId()==R.id.btn_Track)
{
Toast.makeText(context, listMaps.get(position).get("orderId"),Toast.LENGTH_LONG).show();
}
} 
}

ListView嵌套ListView的内部item响应

在主Listview Item XML中最顶层这里我用的是LinearLayout 设置android:descendantFocusability="blocksDescendants"

并设置主Listviewandroid:focusable="false"

//listview事件

viewHolder.listView.setOnItemClickListener(new listv_Goods());

private class listv_Goods implements OnItemClickListener{

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
Map<String, String> item = (Map<String, String>) parent.getItemAtPosition(position);
Toast.makeText(context, item.get("name"),Toast.LENGTH_LONG).show();
} 
}


自定义快速拖动条

其实要实现上图的在ListView右侧的拖动条很简单,只需在xml文件中定义ListView时加入一个属性就可以了。

<ListView android:id="@+id/listView"

android:layout_width="fill_parent"
android:layout_height="fill_parent"

android:fastScrollEnabled="true"
android:focusable="true" />

但是有时候会发现设置属性无效,滚动ListView并未出现滑块。原因是该属性生效有最小记录限制。当ListView记录能够在4屏以内显示(也就是说滚动4页)就不会出现滑块。可能是api设计者认为这么少的记录不需要快速滚动。

另外:

在ListView中添加属性:
android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track" android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb"
scrollbar_vertical_track,crollbar_vertical_thumb自定义的xml文件,放在Drawable中,track是指长条,thumb是指短条,然后再xml中定义短条和长条的样式





分享到:
评论

相关推荐

    Android学习笔记(十)——实现新闻列表

    【第一部分】历史文章: Android学习笔记(一)——创建第一个Android项目 ...Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)——数据存储(共享参数Share

    安卓Android源码——listView1.rar

    这份"安卓Android源码——listView1.rar"压缩包很可能是包含了一个关于ListView使用和自定义的示例项目。在Android开发中,理解ListView的工作原理以及如何有效地优化其性能是非常重要的知识点。 1. **ListView基本...

    安卓Android源码——listview快速滑动,修改默认的滑动条.rar

    本资料包“安卓Android源码——listview快速滑动,修改默认的滑动条.rar”提供了解决这些问题的解决方案。 首先,我们要讨论如何优化ListView的快速滑动性能。在Android中,ListView通过使用ViewHolder模式来提高...

    安卓Android源码——Listview分页加载数据.zip

    总结,这个"安卓Android源码——Listview分页加载数据.zip"示例旨在帮助开发者理解如何在ListView中实现高效的数据加载和分页,同时展示了Adapter和ListView滚动监听的使用。掌握这些技术对于构建高性能的Android...

    安卓Android源码——ListView下拉刷新 Demo.zip

    本示例“安卓Android源码——ListView下拉刷新 Demo.zip”提供了一个具体的实现,帮助开发者理解和实现这一功能。 首先,我们要了解下拉刷新的基本原理。下拉刷新通常由两部分组成:UI动画和数据加载逻辑。UI动画是...

    安卓Android源码——ListView滚动气泡提示.rar

    这个“安卓Android源码——ListView滚动气泡提示.rar”压缩包很可能是提供了一个关于如何在ListView滚动时显示气泡提示的示例代码。这种功能常用于通知用户一些重要的信息或者在列表项上显示动态更新的数据。 在...

    安卓Android源码——listview上拉刷新.zip

    "安卓Android源码——listview上拉刷新.zip"这个压缩包很可能是包含了一个关于如何为ListView实现上拉刷新功能的示例代码。上拉刷新(Pull-to-Refresh)是用户界面中常见的一种交互模式,它允许用户在列表底部滑动时...

    安卓Android源码——ListView上下翻页效果.zip

    这个压缩包"安卓Android源码——ListView上下翻页效果.zip"很可能是包含了一个示例项目,演示了如何在ListView中实现上下翻页的效果。这样的效果通常涉及到滚动监听、数据加载优化以及用户体验提升等方面。下面将...

    安卓Android源码——listView学习源码.zip

    这份"安卓Android源码——listView学习源码.zip"压缩包提供了学习ListView的源码,非常适合开发者深入理解ListView的工作原理和实现方式。在这个源码分析中,我们将探讨ListView的关键特性、工作流程以及如何自定义...

    安卓Android源码——listview实现图片的异步加载.zip

    本资料“安卓Android源码——listview实现图片的异步加载.zip”将深入探讨这一技术。 1. **异步加载原理** 异步加载是指在后台线程中执行耗时操作,例如网络请求或图片解码,而主线程则继续处理用户界面交互。这样...

    安卓Android源码——ListView多级展示,item由对象Leaf提供数据,可设置多个控件.zip

    在安卓开发中,ListView是...以上就是关于“安卓Android源码——ListView多级展示,item由对象Leaf提供数据,可设置多个控件”的主要知识点。通过理解并应用这些概念,你可以创建出功能丰富的、响应式的ListView组件。

    安卓Android源码——ListView&时间轴.zip

    本资源“安卓Android源码——ListView&时间轴.zip”包含了关于这两个组件的源代码示例,通过图片和文本文件帮助开发者理解它们的工作原理。 首先,ListView是Android SDK中的一个视图组件,用于展示一系列垂直排列...

    安卓Android源码——listview快速滑动,修改默认的滑动条.zip

    本资料“安卓Android源码——listview快速滑动,修改默认的滑动条.zip”正是针对这个需求,提供了优化ListView快速滑动以及自定义滚动条的解决方案。 首先,我们要理解ListView的工作原理。ListView通过复用视图...

    安卓Android源码——ListView分页功能源码.zip

    本资源"安卓Android源码——ListView分页功能源码.zip"提供了一个实现ListView分页功能的示例源码,这对于处理大数据集和优化用户界面至关重要。下面将详细探讨ListView分页的基本原理和实现方法。 首先,ListView...

    安卓Android源码——ListView滚动气泡提示.zip

    这个压缩包"安卓Android源码——ListView滚动气泡提示.zip"包含了关于如何在ListView中实现滚动时的气泡提示功能的示例代码和相关图片。接下来,我们将深入探讨这一主题。 首先,ListView滚动气泡提示是一种增强...

    安卓Android源码——ListView反弹效果源码.zip

    这个压缩包文件“安卓Android源码——ListView反弹效果源码.zip”显然包含了实现ListView滚动到顶部或底部时的反弹效果的源代码。这种反弹效果,也被称为“橡皮筋效果”,常见于iOS系统中,给用户带来更自然、流畅的...

    安卓Android源码——listview上拉和下拉刷新项目包.rar

    这个“安卓Android源码——listview上拉和下拉刷新项目包.rar”提供了一个实现这种功能的库——PulltorefreshLibary。下面我们将深入探讨这一库的关键知识点。 首先,下拉刷新(Pull-to-Refresh)是指用户在...

    Android_ListView控件基本用法

    为了有效地处理这类需求,Android提供了一种非常有用的控件——`ListView`。本文将详细介绍如何在Android应用程序中使用`ListView`控件,包括其基本概念、工作原理以及如何实现简单的数据绑定。 #### 二、ListView ...

Global site tag (gtag.js) - Google Analytics