scrollView下拉刷新,异步任务动态添加view

来源:互联网 发布:简单软件开发 编辑:程序博客网 时间:2024/05/02 06:53

        做一个类似qq客户端“好友动态“刷新的东西,在网上找了很多,大体有3种布局类型的下拉刷新,listView、scrollView、gridView。

        下拉刷新的原理网上很详细,简单点说,,拿 "好友动态" 举例,有

      1、ElasticScrollViewActivity.java(对应的xml文件是main.xml,里面嵌套com.ElasticScrollView.view.ElasticScrollView)、

      2、ElasticScrollView.java(继承自scrollView,定义一个ScrollView类,然后再friendCircleActivity里定义一个scrollView,scrollView的addChild方法,或者通过activityactivity_friendCircle布局里面的LinearLayout  friendList的addView方法,添加singleMessage。scrollView绑定onFreshListener。这个类里面定义刷新的各个状态,下拉刷新头的更新等,下拉刷新header各个控件:下拉箭头、相关文字提示、刷新日期提示等,里面通过inflate引入headerView、coverImageView,本身是个View,没有专门对应xml文件)、

      3、SingleMessageView.java(下拉刷新后,动态添加的一条条消息体,是消息体的布局,通过inflate引入sing_msg.xml),

      4、activity_friendCircle.xml  就是在你的滚动布局scrollFreshview里面,根据需要再添加一个类似  ”好友动态“里自定义封面的view视图

      5、single_msg.xml,定义每个消息体的布局

框架结构如图:

      动态添加view,用的是linearLayout的addView方法,这样,需要在scrollFreshview的代码中定义一个LayoutInflate innerLayout,然后在这个layout里面inflate进headerView、coverImageView:

 LayoutInflater inflater = LayoutInflater.from(context);innerLayout = new LinearLayout(context);innerLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));innerLayout.setOrientation(LinearLayout.VERTICAL);headView = (LinearLayout) inflater.inflate(R.layout.mylistview_head,null);coverScrollView = (ScrollView) inflater.inflate(R.layout.activity_friends_circle,null);               innerLayout.addView(headView);               innerLayout.addView(coverScrollView);               addView(innerLayout);


         整个工程:ElasticScrollView,下载链接:http://download.csdn.net/detail/summertime2013/7185395

         来源参考:http://www.apkbus.com/android-51424-1-1.html(怎么加自定义封面,怎么定义动态添加消息的顺序,博主写的很详细,原博主用的是thread线程添加的,我的用的是异步任务)





0 0
原创粉丝点击