首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ListView详细介绍与使用

前言介绍: 关于 ListView 我们大家都应该是非常的熟悉了,在 Android 开发中是经常用到的,今天就再来回顾一下,ListView 的使用方法,和一些需要优化注意的地方,还有日常开发过程中的一些小技巧和经验...假如当屏幕一次可以显示 x 个 item 时(不用是完整的),那么 ListView 会创建 x+1 个视图;当第1个 item 离开屏幕的时候,此时这个 item 的 View 就会被回收,再入屏的...形式的数据绑定到列表中作为数据源,支持泛型操作 步骤: 在 xml 文件布局上实现 ListView 在 Activity 中定义数据源(列表或者数组) 构造 ArrayAdapter 对象,设置适配器...extends Map 创建 SimpleAdapter 适配器 将 SimpleAdapter 适配器绑定到 ListView 中 完事 具体实现 在 xml 中添加 ListView LinearLayout...的长度逐一绘制 ListView 的每一行 获取数据时,通过 getItem() getItemId() 来获取 Adapter 中的数据 重点看一下 getView 实现方式一: 直接返回索引对应的数据的视图

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ListView优化和列表首尾使用

    在某些GUI工具包中,可以通过在程序代码中整体性地声明复合的View对象来避免这个问题。因为在访问这个组件时,无非就是调用getter方法或访问字段。...当然,在Android中也可以做到这一点,只不过代码会复杂繁琐一些。...在持有者模式中,Tag标签用来保存对象,而对象又用来保存要使用的子组件。在将持有者添加到视图后,只要用到了行,就可以轻而易举的访问其子组件,而不必再调用findViewById()方法了。...三、列表头和列表尾的使用 在实际使用ListView时,经常会有这样的需求:当位于ListView最顶部的时候,显示一个搜索框可以搜索列表内容,或者显示下拉刷新;当位于ListView最底部的时候...给ListView添加HeadView和FootView,当ListView滑动至列表第一项时使HeadView滑动出现,当ListView滑动至列表最后一项时使FootView滑动出现。

    1.5K80

    Carson带你学Android:全面解析列表ListView与AdapterView

    前言 ListView在Android开发中十分常见 今天,我将为大家带来ListView与AdapterView全面解析,含其特点、工作原理等,希望你们会喜欢。...,ListView不会为每一个数据创建一个视图,而是采用了Recycler组件,用于回收 & 复用 View 当屏幕需显示x个Item时,那么ListView会创建 x+1个视图;当第1个Item...离开屏幕时,此Item的View被回收至缓存,入屏的Item的View会优先从该缓存中获取 注: 只有Item完全离开屏幕后才可复用,这也是为什么ListView要创建比屏幕需显示视图多1个的原因...:缓冲 显示视图 即:第1个Item离开屏幕是有过程的,会有1个 第1个Item的下半部分 & 第8个Item上半部分同时在屏幕中显示的状态,此时仍无法使用缓存的View,只能继续用新创建的视图View...生成方式 生成列表视图(ListView)的方式主要有两种: 直接用ListView进行创建 让Activity继承ListActivity 2. xml文件配置信息 LinearLayout xmlns

    1.1K10

    android学习笔记----ListView和各种适配器简介

    ArrayAdapter具有说明来告诉它自己如何创建列表项视图,并返回给ListView,当屏幕被占满后 ListView 将停止向ArrayAdapter 寻求更多的列表项,列表项视图仅在需要时才创建...重复使用它们,ListView 将请求列表中特定位置的视图,同时传入之前用过的视图。...比如,ListView 请求的是位置 6 处的项,并向 ArrayAdapter 传入可重复使用的以前视图,ArrayAdapter 可以通过在回收过的视图里放入数据,使用回收的视图,然后再接着比如通过调用...并且知道如何将每项呈现为视图,与此同时 ListView 负责在屏幕上显示这些视图,检测用户的触摸手势,并跟踪用户是否位于整个列表中。  ...> LinearLayout> 在某一个activity中,比如NumbersActivity.java .....

    2.2K10

    Android开发:ListView、AdapterView、RecyclerView全面解析

    工作原理:当屏幕需要显示x个item时,那么ListView只会创建x+1个视图,当第一个item离开屏幕时,此item的view就会被拿来重用(用于显示下一个item(即第x+1个)的内容)。...工作原理实例 假如屏幕只能显示7个item,那么ListView只会创建(7+1)个item的视图。当第1个item离开屏幕时,此item的view就会被拿来重用(用于显示第8个item的内容)。...生成方式 生成列表视图(ListView)的方式主要有两种: - 直接用ListView进行创建 - 让Activity继承ListActivity 2. xml文件配置信息 LinearLayout...工作原理 当屏幕需要显示x个item时,那么ListView只会创建x+1个视图,当第一个item离开屏幕时,此item的view就会被拿来重用(用于显示下一个item(即第x+1个)的内容)。...当第1个item离开屏幕时,此item的view就会被拿来重用(用于显示第8个item的内容)。原理如下图显示 !

    3.5K30

    Android开发笔记(一百二十二)循环器视图RecyclerView

    RecyclerView RecyclerView是Android在support-v7库中新推出控件,中文别名为循环器视图,它的功能非常强大,可分别实现ListView、GridView,以及瀑布流网格的显示效果...onCreateViewHolder : 创建整个布局的视图持有者。输入参数中包括视图类型,可根据视图类型加载不同的布局,从而实现带头部的列表布局。...: 1、自带ViewHolder及其重用功能,无需开发者手工重用ViewHolder; 2、未自带列表项的点击和长按功能,需要开发者自己实现点击和长按事件的监听; 3、增加区分不同列表项的视图类型...方法,界面就会根据新布局刷新列表项,这个特性特别适合于手机在竖屏/横屏之间的显示切换(如竖屏时展示ListView,横屏时展示GridView),也适合在不同屏幕分辨率如手机/平板之间的显示切换(如手机上展示...LinearLayoutManager 线性布局管理器LinearLayoutManager类似于LinearLayout,当它是垂直方向布局时,则展示效果类似于ListView;当它是水平方向布局时

    2.4K20

    ListView使用技巧-更新中

    虽然在Android5.X中,RecyclerView在很多地方组件取代了ListView,但是ListView的使用依然是分广泛。 本博文将对以下两方面的内容进行介绍 1....使用ViewHolder模式提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免了每次在getView()时重复的调用findViewById()....在自定义的Adapter中定义一个内部类ViewHolder,并将Item布局中的控件作为成员变量 2. 接下来只要在getView()方法中通过视图缓存机制来重用以缓存即可。...隐藏ListView的滚动条 3.隐藏ListView的滚动条 默认的ListView在滚动时,在右边会显示滚动条,指定当前滚定的位置。...true-不活动时隐藏,活动时显示 listView.setVerticalScrollBarEnabled(false); // 或者在

    95530

    Android项目实战(二十):浅谈ListView悬浮头部展现效果

    先看下效果:需求是 滑动列表 ,其中一部分视图(粉丝数,关注数这一部分)在滑动到顶端的时候不消失,而是停留在整个界面头部。...我们先分析要解决的问题: 1、如何实现列表ListView顶部视图跟随ListView一起滑动 2、如何实现滑动过程中需要停留在顶部的视图 解决: 第一个问题,实现ListView与顶部视图一起滑动,ListView...提供一个方法,addHeadView(View);  意思就是在ListView顶部添加一个View。...那么这个View就能和ListView一起滚动。 第二个问题,怎么保证界面中间的某一部分视图滑动到顶部的时候停留在顶部呢?...View1刚划出顶部的时机就是: 当滑动时 firstVisibleItem>=要悬浮的 item的position时 让View2显示 ,否则隐藏。

    1.4K50

    ListView列表数据源——Adapter

    Android 鼓励弱耦合和组件的重用,Android 中MVC的具体体现如下: 模型(model):是应用程序的主题部分,所有的业务逻辑都应在该层(对数据库的操作、对网络等的操作都应该在model里面处理...在MVC模式中其实控制器Activity主要是起到解耦作用,将View视图和Model模型分离,虽然Activity起到交互作用,但是一般在Activity中有很多关于视图UI的显示代码,因此View视图和...在常见的View(ListView、GridView)等地方都需要用到Adapter。...Android的适配器负责为列表组件提供数据源,也负责将单独的数据元素转换为显示在列表组件中的特定视图,如ListView的适配器关系如下图所示。 ?...ArrayAdapter,创建ArrayAdapter时必须指定如下三个参数。

    2K100

    常用Android布局文件优化技巧总结

    在布局文件中,可以定义各种视图元素,如 TextView、Button、ImageView 等。每个视图元素都可以设置一些属性,如宽度、高度、边距、背景颜色等。...这些属性可以用来控制视图元素在布局中的位置和大小。 布局文件的解析过程 当应用程序启动时,Android 系统会将布局文件解析成一个视图层次结构,然后将其加载到内存中。...逐行解析 XML 文件,创建相应的视图对象,并设置视图对象的属性。 将所有视图对象组织成一个视图层次结构。 在解析布局文件时,Android 系统会使用反射机制来动态地创建视图对象。...ViewStub 是一个轻量级的视图容器,可以在需要时动态地加载布局。...在应用程序中,列表布局是最常用的视图之一。传统的列表布局一般使用 ListView 或 GridView,但这些视图容器在性能和灵活性方面存在一定的问题。

    26220

    揭开RecyclerView庐山真面目

    大家还记得之前在第38期~第50期都在学习列表控件吗,其中用了8期讲ListView的使用,相信都已经掌握好了吧。...谷歌在Android L中新增了RecyclerView,是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。...它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持。...在开发RecyclerView时充分考虑了扩展性,因此用它可以创建想到的任何种类的的布局。但在使用上也稍微有些不便,比如使用步骤更加复杂,特别是一些控制点击、长压事件需要自己完成。...GridLayoutManager:在网格中展示条目,相当于之前学习的GridView。 StaggeredGridLayoutManager: 在错落的网格中展示条目,比如常见的瀑布流。

    1.8K80

    Fragment基本使用

    方式添加,在由于内存紧张导致Fragment被系统杀掉并恢复(re-instantiate)时能保留这些数据 可以在Fragment的onAttach()中通过getArguments()获得传进来的参数...= (ListView)rootView.findViewById(R.id.list);//获取自己视图里的控件引用,方法一 return rootView; } 在onCreateView...()中,还没有创建视图,所以在这里如果使用getView()方法将返回空 另一种方法是在onActivityCreated()中获取,其回调在onCreate()执行后再执行 public void onActivityCreated...listView = (ListView) getView().findViewById(R.id.list);//获取自己视图里的控件引用,方法二 ArrayAdapter arrayAdapter...中给接口变量赋值,在Fragment与Activity关联时,需要强转 public void onAttach(Activity activity) { super.onAttach(activity

    2K30
    领券