Change项目总结

来源:互联网 发布:阴茎粗大的感受 知乎 编辑:程序博客网 时间:2024/06/05 07:50

圈子页:FmCircleFragement包括一个顶部自定义的actionbar一个viewpager
使用技术:
fragment加载布局:在onCreatView加载fragment的布局文件使用View view = View.inflate(getContext(), R.layout.fragment_circle_fm, null);

viewpagere的常用方法:
vpCircle.setCurrentItem(0);//默认显示第一页
vpCircle.setOnPageChangeListener(new ViewPager.OnPageChangeListener() //翻页监听

viewpager的adapter只负责加载每一页的view,每页的业务逻辑交给各页去处理,即写一个basepager,然后分别生成各页的子类如hotPager等。
vpCircle.setAdapter(new ContentAdapter());

//viewpager的adapter    class ContentAdapter extends PagerAdapter {        @Override        public int getCount() {            return mPagerList.size();        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view == object;        }        @Override        public Object instantiateItem(ViewGroup container, int position) {            BasePager pager = mPagerList.get(position);            container.addView(pager.mRootView);//加载view            pager.initData();//初始化数据(放在此处会预加载下一页数据)            return pager.mRootView;        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView((View) object);        }    }

hotPager是各页的父类,抽出各页的公共部分

package com.diandao.ddandroid.pager;import android.app.Activity;import android.view.View;import android.widget.FrameLayout;import com.diandao.ddandroid.R;/** * 圈子viewpager的两个pager的基类 * 作者: FebMaple on 2016/6/1. * 邮箱: febmaple219@gmail.com * 版权: FebMaple * ==================================================== */public class BasePager {    public Activity mActivity;    public View mRootView;    public FrameLayout flContent;    public BasePager(Activity activity) {        mActivity = activity;        initViews();    }    public void initViews() {        mRootView = View.inflate(mActivity, R.layout.base_pager_layout, null);        flContent = (FrameLayout) mRootView.findViewById(R.id.fl_content);    }    public void initData() {    }}

RecyclerView显示两种不同布局的item
1重写getItemViewType()方法,对itemview进行分类
2重写onCreateViewHolder()方法,根据不同的viewType加载不同的item布局
3重写onBindViewHolder(),根据不同的viewHolder绑定不同的数据
RecyclerView相关api
setLayoutManager(),addItemDecoration(),setItemAnimator(),setAdapter()
*设置水平列表***new LinearLayoutManager(mActivity).setOrientation(LinearLayoutManager.HORIZONTAL);
RecyclerView的adapter的相关api
onCreatViewHolder(),onBindViewHolder(),getItemCount(),getItemViewType()

        ***第二部分:帖子详情页***

用到的技术

1:intent传递一个对象

Bundle mBundle = new Bundle();mBundle.putParcelable("topic", topic);intent.putExtras(mBundle);

2:webview加载(String类型)html内容而不是网址

webView.loadDataWithBaseURL(null, content, "text/html", "UTF-8", null);

如果使用网址的话直接加载loadUrl();

        ***第三部分 发布帖子***

使用技术:
1:使用recyclerview实现gridview进行图片选择
rvSelectPhoto.setLayoutManager(new GridLayoutManager(this, 3));
2: 使用toggleButton作为单选按钮
btnKeyboard2.setChecked(true);
btnAite2.setChecked(false);
btnEmoji2.setChecked(false);
btnCamera2.setChecked(false);
btnPhoto2.setChecked(false);

碰到的问题

0 0
原创粉丝点击