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);
碰到的问题
- Change项目总结
- 引用别人的项目cannot change version
- change
- Change
- CHANGE
- change
- Change
- change
- change
- Change
- change()
- Change
- leecode 解题总结:322. Coin Change
- EXTJS项目实战经验总结一:日期组件的change事件:
- 解决Maven项目中的错误:Cannot change version of project ...
- maven项目遇到cannot change version web module 3.0
- 关于322. Coin Change的解法与总结
- 项目总结
- JS中Array方法中常用方法四:Array.prototype.pop()
- Lucene (v4.5) 深入学习(一) —— 原理
- IOS NSKeyedArchiver 归档,和解档
- 跳过编译安装 - centos安装编译nodejs - 不要跳坑了,直接下载编译好的版本
- 2016-9-10比赛总结
- Change项目总结
- poj3436 ACM Computer Factory
- 压轴题1
- 开始写博客
- 带你读开源—ASP.NET_MVC(十一)
- Opencv在视频中静态、动态方式绘制矩形框ROI
- 搬桌子
- mysql5.7执行sql语句报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains nonagg
- 网站优化远比想象的难