Listview实现不同类型的布局】的更多相关文章

打开各种客户端发现 Listview的布局多种多样,在我以前的认知中listview不是只能放一种item布局嘛,我就震惊了,现在我自己的项目上要用到这种方式那么就去做下 原理是listview 的adapter中 有这两个方法 // 返回当前布局的样式type @Override public int getItemViewType(int position) { return listDatas.get(position).type; } // 返回你有多少个不同的类型的数量 @Overri…
要想在一个ListView中使用多个布局文件,比如一个信息List包含了一个信息标题和每个信息对应的时间. 关键的步骤是实现Adapter类的getItemViewType 和getViewTypeCount 这两个方法 getItemViewType(int) 以int数值型返回itemView的类型.一般普通列表的item都是一样的布局,也就是说这个列表只有一种类型,但是很多时候我们需要列表显示不同的item,比如有的列表有普通item和separator两种类型,item用于响应用户点击事…
android listview需要呈现多个布局 之前的做法很笨 在getView()方法里面,不仅将viewHolder作为tag属性设置给convertView 还将当前的position作为tag属性设置给convertview 在getView()方法中,接收到回收的convertview的时候,会根据tag属性里面保存的postion来判断该布局是否当前需要的. 不需要则重新加载布局文件 更好的方法 今天发现其实listView对于的baseAdapter里面对这种需要显示不同布局的情…
1.目标效果 带不同类型条目的listview(纯文本类型的条目,图片+文字类型的条目)+常驻悬浮框 2.页面布局文件 (1)activity_process_manager.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=&q…
安卓提供了一些自带的布局,使用非常简单.直接看代码吧. package com.example.linfeng.myapplication; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class ListViewActivity extends Activity { private…
一.概述 一般而言,listview每个item的样式是一样的,但也有很多应用场景下不同位置的item需要不同的样式. 拿微信举例,前者的代表作是消息列表,而后者的典型则是聊天会话界面. 本文重点介绍后者,也就是多类型item的listview的实现思路和方法,比如实现一个这样的聊天会话页面: 二.实现思路 2.1 第一种思路:用“一种类型”变相实现多种类型 这种思路其实与 ListView之点击展开菜单 这篇文章的原理一样,每个item的布局都包含所有类型的元素: 对于每个item,根据实际类…
一般复杂的ListView都会重写BaseAdapter,通过重用convertView来减少inflate,通过setTag()和ViewHolder改变ItemView的内容. 重写BaseAdapter必须要实现 public int getCount() public Object getItem(int position) public View getView(int position, View convertView, ViewGroup parent) 这三个函数. 补充一下L…
ListView可以显示多种类型的条目布局,这里写显示两种布局的情况,其他类似. 1. 这是MainActivity,MainActivity的布局就是一个ListView,太简单了这里就不写了,直接来到MainActivity,如下: public class MainActivity extends Activity { private ListView lv; private List<People> lists; @Override protected void onCreate(Bu…
首先创建请求队列,一个活动中只需要一个,因此放在Application中: public class MyApplication extends Application{ private static RequestQueue requestQueue; @Override public void onCreate() { super.onCreate(); requestQueue = Volley.newRequestQueue(getApplicationContext()); } pub…
ListView可以显示多种类型的条目布局,这里写显示两种布局的情况,其他类似 这是MainActivity:,MainActivity的布局就是一个ListView public class MainActivity extends Activity { private ListView lv; private List<People> lists; @Override protected void onCreate(Bundle savedInstanceState) { super.on…
ListView可以显示多种类型的条目布局,这里写显示两种布局的情况,其他类似. 1. 这是MainActivity,MainActivity的布局就是一个ListView,太简单了这里就不写了,直接来到MainActivity,如下: public class MainActivity extends Activity { private ListView lv; private List<People> lists; @Override protected void onCreate(Bu…
/** * 自定义城市列表适配器 */ private class MyCityListAdapter extends BaseAdapter { final int VIEW_TYPE = 2; final int TYPE_1 = 0; final int TYPE_2 = 1; @Override public int getCount() { return cityList.size(); } @Override public Object getItem(int position) {…
#  百度了下,感觉下面的博客文章还都挺全面的,写的很好,直接分享得了 Android性能优化--Listview优化 - tonycheng93 - 博客园http://www.cnblogs.com/tonycheng93/p/4625513.html#top ListView优化完全解读 - 五年·纵情向前 - 博客频道 - CSDN.NEThttp://blog.csdn.net/a910626/article/details/46946639 [Android笔记]listview加载…
需求: 1.listview向下滑动时,隐藏顶部布局 2.listview向上滑动到最上面,显示顶部布局 3.顶部布局的隐藏和显示有过渡效果 4.第一次加载listview时,顶部不要隐藏 布局: 注意:android:animateLayoutChanges="true"添加在需要隐藏显示布局的父布局中才能有过渡效果 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout…
-----工程WindowTest----- 1.-----窗体类型type.cpp----- #include <QtGui> int main(int argc, char * argv[]) { QApplication app(argc, argv); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QWidget wgt1(, Qt::Widget);//默认 QWidget…
1.ListView Viewholder的坑 /** * 默认带图片的menu adapter */ public static class MenuImageAdapter extends BaseAdapter { private List<Aliquot> mDataSet; private Context mContext; public MenuImageAdapter(List<Aliquot> dataSet, Context context) { this.mDa…
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建一个form窗体,然后在窗体中拖拽一个ListView. 在form的shown事件中进行窗体的初始化. private void Form1_Shown(object sender, EventArgs e) { listView1.GridLines = true;//在各数据之间形成网格线 listVi…
参考<疯狂android讲义>2.5节 1.AdapterView一般用于显示列表项,其内容由Adapter提供.调用Adapter的setAdapter(Adapter)方法设置Adapter即可. AdapterView继承自ViewGroup,它的本质是容器. 2.几个重点类的继承关系 (1)Adapter: java.lang.Object    ↳ android.view.View      ↳ android.view.ViewGroup        ↳ android.wid…
如果: ScrollView.scrollTo(0,0): ScrollView.fullScroll(View.FOCUS_UP) : ScrollView.smoothScrollTo(0, 0): 这三种方法都解决不了你的问题,那么请往下看: 布局有点复杂: 最外层是SwipeRefreshLayout嵌套ScrollView再嵌套LinearLayout再嵌套RecyclerView的:因为布局比较复杂,布局的位置还要求用户自己可以调整,使用的是LinearLayout动态添加View的…
效果如图: 这个效果可以用一个框架来做,首先在网上搜关键字,然后搜索的结果在这里:http://stackoverflow.com/questions/20906964/viewpager-with-header-view,然后可以找到这个框架,GitHUb地址:https://github.com/noties/Scrollable,首先用Compile引用,发现有一些不对,于是把他的整个项目下载下来了,直接引用他的类库,然后编译他的项目,对照这个项目的例子代码来写,然后结合其GitHub上的…
1. 使用场景 在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能.convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题.比如有些行为纯文本,有些行则是图文混排,这里纯文本行为一类布局,图文混排的行为第二类布局.单一类型的ListView很简单,下面着重介绍一下ListView包含多种类型视图布局的情形. 2.ListView包含…
1.布局 布局的内部除了放置控件外,也可以放置布局,通过多层布局的嵌套,我们就能够完成一些 比较复杂的界面实现 ¨四种基本布局 LinearLayout RelativeLayout FrameLayout TableLayout 2.补充知识 View 所有用户交互的组件(Widget)的基类 一个View对象占据矩形区域,并负责这个区域内的像素绘制和事件处理.   ViewGroup 继承自View类 ViewGroup类是所有布局(layouts)的基类,布局类是不可见的,用于容纳其他Vi…
原创教程,转载请保留出处:http://www.eoeandroid.com/thread-72369-1-1.html     最近有需求需要在listView中载入不同的listItem布局,开始没有使用convertView,加载了多个item后导致了内存泄露,所以回来研究convertView在多个listItem布局时的缓存及应用,并且和大家分享 构造Adapter时,没有使用缓存的 convertView,导致内存泄露 示例代码:public View getView(int pos…
在使用不同布局的时候,getItemViewType和getViewType不能少,通常是不用这两个函数的重载的 listView.setAdapter(new BaseAdapter() { @Override public int getViewTypeCount() {//例:3种类型的布局 return 3; } @Override public int getItemViewType(int position) { //该方法很重要.adapter内部会自己主动调用该方法.然后依据该类…
一.基本概念 实现一个Item的多布局.像我们经常在用的各种即时通讯工具,QQ.微信等,假设他们的会话界面是ListView实现的,那么ListView就有多种Item布局,要实现ListView里面有多种Item,就要重写适配器的两个方法getViewTypeCount()和getItemViewType(int position),第一个方法是返回Item的种类数目,第二个是返回当前Item是哪种类型.重写getItemViewType()方法对应View是哪个类别,以及getViewTyp…
listview控件设置适配器的时候,如果使用自定义的adapter,比如MyArrayAdapter extends ArrayAdapter<String> 如果listitem布局文件不做任何处理的话,点击列表项的时候不会出现背景色灰色的现象. 实现思路是:在listitem布局文件中为该布局文件中的父控件:LinearLayout,设置android:background="@drawable/listitemclickseletor" 其中listitemclic…
最近做项目要使用ListView加载不同的布局,由于自己写的代码不能贴出,故找了一篇自认为比较好的blog给分享出来,希望对用到此项技术的同学有点帮助. http://logc.at/2011/10/10/handling-listviews-with-multiple-row-types/ 另外有兴趣的同学还可以看看MergeAdapter和 SackOfViewsAdapter…
一.问题分析 在上一篇中,我们将头布局加到了ListView上.但是没有隐藏他.你可能会想,隐藏还不简单,直接给它设置为GONE属性不就可以了吗,在需要的时候再设定为可见.没错,这正是ListView实现分页加载时候的做法.但是实现分页加载时,只需要上拉一下,并没有和用户过多的互动.而实现下拉刷新时,一般的做法是,用户在下拉的时候,头布局会慢慢显示,以至于有一种被拉出来的感觉.而分页加载的做法确是只要发现用户下拉,就一下子全部显示出来了.所以这种做法显然不是我们想要的效果. 那么,我们根据我们想…
一.效果演示 ListView实现下拉刷新,是很常见的功能.下面是一个模拟的效果,如下图:                                   效果说明:当往下拉ListView的时候,顶部就会有一个“下拉刷新”的标识被拉 出来,再往下拉的时候,标识就会变成”松开刷新“,期间还伴随一个箭头的变化.此时松开手指,则会变成进度条提示正在刷新,刷新完成后,则加载进来刷新的数据.如此反复,就是下拉刷新的功能. 二.准备Demo 其实本质上,ListView实现下拉刷新和实现分页加载都是一…
listview经常结合下来刷新和上拉加载更多使用,本文总结了三种常用到的方案分别作出说明. 方案一:添加头布局和脚布局        android系统为listview提供了addfootview和addheadview两个API.这样可以直接自定义一个View,以添加视图的形式实现下来刷新和上拉加载.     实现步骤       1.创建一个类继承ListView:class PullToRefreshListView extends ListView:       2.在构造方法中添加…