当前位置: 首页 > news >正文

建设网站的基础知识互联网行业都有哪些工作赚钱

建设网站的基础知识,互联网行业都有哪些工作赚钱,网站的建设方法包括什么,wordpress 8.0MPGankIO 布局篇整个App到了这里就开始准备开始实现逻辑啦#xff0c;有没有点小期待后续如果有需要可以爬一波包包通缉令的数据O(∩_∩)O~~我们的布局采用5.0之后的新布局控件1.CardViewCardView特别的属性如下#xff1a;android:cardCornerRadius#xff1a;在布局中设置…MPGankIO 布局篇整个App到了这里就开始准备开始实现逻辑啦有没有点小期待后续如果有需要可以爬一波包包通缉令的数据O(∩_∩)O~~我们的布局采用5.0之后的新布局控件1.CardViewCardView特别的属性如下android:cardCornerRadius在布局中设置card圆角的大小CardView.setRadius在代码中设置card圆角的大小android:cardBackgroundColor在布局中设置card背景的颜色android:elevation设置阴影的大小card_view:cardElevation 阴影的大小card_view:cardMaxElevation 阴影最大高度card_view:cardCornerRadius 卡片的圆角大小card_view:contentPadding 卡片内容于边距的间隔card_view:contentPaddingBottomcard_view:contentPaddingTopcard_view:contentPaddingLeftcard_view:contentPaddingRightcard_view:contentPaddingStartcard_view:contentPaddingEndcard_view:cardUseCompatPadding 设置内边距V21的版本和之前的版本仍旧具有一样的计算方式**card_view:cardPreventConrerOverlap在V20和之前的版本中添加内边距这个属性为了防止内容和边角的重叠**我们要使用这个CardView来做卡片式的列表xmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_margin5dpandroid:foreground?android:attr/selectableItemBackgroundandroid:orientationverticalapp:contentPadding5dpandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:idid/tv_titlestylestyle/txt_normal_styleandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginLeft5dpandroid:ellipsizeendandroid:gravitystartandroid:maxLines3android:text标题android:textSize16sp/android:idid/tv_namestylestyle/txt_normal_styleandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignParentBottomtrueandroid:layout_belowid/tv_titleandroid:layout_marginTop10dpandroid:gravitybottomandroid:text作者android:textColorcolor/colorPrimary/android:idid/tv_publishtimestylestyle/txt_normal_styleandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignParentBottomtrueandroid:layout_alignParentRighttrueandroid:layout_belowid/tv_titleandroid:layout_marginTop10dpandroid:gravitybottomandroid:text发表时间/CardView 大部分适用于 listView 或者recyclerView的item中。2.RecyclerViewRecyclerView与ListView原理是类似的都是仅仅维护少量的View并且可以展示大量的数据集。RecyclerView用以下两种方式简化了数据的展示和处理:使用LayoutManager来确定每一个item的排列方式。为增加和删除项目提供默认的动画效果。你也可以定义你自己的LayoutManager和添加删除动画,SDK中默认包含了三种布局1. 横向布局(LinearLayoutManager)2. Grid布局(GridLayoutManager)3. 瀑布流布局(StaggeredGridLayoutManager)Adapter使用RecyclerView之前你需要一个继承自RecyclerView.Adapter的适配器作用是将数据与每一个item的界面进行绑定。LayoutManager用来确定每一个item如何进行排列摆放何时展示和隐藏。回收或重用一个View的时候LayoutManager会向适配器请求新的数据来替换旧的数据这种机制避免了创建过多的View和频繁的调用findViewById方法(与ListView原理类似)。总而言之就相当于ListView封装后再抽象使item更加灵活项目中我使用的是XRecyclerView,是封装了上拉刷新和下拉加载的一个库非常好用还有挺多的加载动画可以切换,使用的方法也很简单哈哈偷懒 不都是说为了不要重复造轮子嘛~你懂的3.Fragment这个应该不用多讲了相信大家都会的4.代码附上MainFragment.java 这个就是为了在主页将一些数据初始化为了给TypeFragment拿到类型数据为什么使用FragmentStateAdapter而不用FragmentPagerAdapter是因为viewpager页数比较多FragmentStateAdatper的机制是空置的时候将其销毁释放内存,而FragmentPagerAdapter是将其dettach因此选用FragmentSteteAdapterGankViewPagerAdapter.javapublic class GankViewPagerAdapter extends FragmentStatePagerAdapter {private List mFragments;private List mTitles;public GankViewPagerAdapter(FragmentManager fm, List fragments, List titles) {super(fm);this.mFragments fragments;this.mTitles titles;}Overridepublic Fragment getItem(int position) {return mFragments.get(position);}Overridepublic int getCount() {return mFragments.size();}Overridepublic CharSequence getPageTitle(int position) {return mTitles.get(position);}}大家如果之前理解过MVP架构应该就会发现我调用的方式啦TypeFragment.java 核心模块public class TypeFragment extends BaseMvpFragment implementsTypeFragmentView {private static final String ARG_PARAM1 type;BindView(R.id.rv_list)XRecyclerView rvList;private String mCategory;private View rootView;private GankTypeCardAdapter mGankTypeCardAdapter;private List mDatas;private int curPage 1;Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (getArguments() ! null) {mCategory getArguments().getString(ARG_PARAM1);}initVariables();}Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {rootView inflater.inflate(R.layout.fragment_type, container, false);ButterKnife.bind(this, rootView);resetDatas();initViews();return rootView;}Overridepublic void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);outState.putString(ARG_PARAM1, mCategory);}Overridepublic void onViewStateRestored(Bundle savedInstanceState) {super.onViewStateRestored(savedInstanceState);if (savedInstanceState ! null) {mCategory ConvertUtil.toString(savedInstanceState.getString(ARG_PARAM1), );//避免为NULL}}Overridepublic void initVariables() {mDatas new ArrayList();}Overridepublic void initViews() {initRecyclerView();presenter.getTypeGankList();}private void initRecyclerView() {rvList.setPullRefreshEnabled(true);rvList.setLoadingMoreEnabled(true);rvList.setLoadingListener(new XRecyclerView.LoadingListener() {Overridepublic void onRefresh() {resetDatas();presenter.getTypeGankList();}Overridepublic void onLoadMore() {presenter.getTypeGankList();}});}Overrideprotected TypePresenter initPresenter() {return new TypePresenter();}public static TypeFragment newInstance(String type) {TypeFragment fragment new TypeFragment();Bundle args new Bundle();args.putString(ARG_PARAM1, type);fragment.setArguments(args);return fragment;}Overridepublic String getCategory() {return mCategory;}Overridepublic int getCurPage() {return curPage;}Overridepublic void addOnePage() {curPage;}Overridepublic void makeUpDatas(List datas) {mDatas.addAll(datas);}Overridepublic void notifyAdapter() {if (mGankTypeCardAdapter null) {mGankTypeCardAdapter new GankTypeCardAdapter(mActivity, mDatas);rvList.setLayoutManager(new LinearLayoutManager(mActivity));rvList.setAdapter(mGankTypeCardAdapter);}// TODO: 16/8/19 //此处可以优化成动画效果以及item逐个优化不需要整个重新排列mGankTypeCardAdapter.notifyDataSetChanged();rvList.refreshComplete();rvList.loadMoreComplete();}Overridepublic void resetDatas() {curPage 1;mDatas.clear();if (mGankTypeCardAdapter ! null) {mGankTypeCardAdapter.notifyDataSetChanged();}}Overridepublic void onDestroyView() {mGankTypeCardAdapter null;super.onDestroyView();}}最后就是P中调用V啦 就是传说中的解耦到此基本上的请求列表功能结束啦下一篇最终章就是列表点击事件和链接的内容页面有问题可以来我博客或者简书反馈,谢谢大家的停留在这里时间
http://www.pierceye.com/news/351047/

相关文章:

  • 网站前台代码国内网站主机
  • 网站后台asp源码高明顺德网站建设
  • 网站建设推广软文网络规划设计师考试全程指导(第2版) pdf
  • 备案网站多少钱支持wordpress的空间
  • 哈尔滨网页模板建站wordpress网页设定
  • 哔哩哔哩网站怎么做视频软件进入公众号会不会泄露个人信息
  • 域名过期做的网站怎么办wap网站前景
  • 网站设计公司 宁波少儿编程课
  • 建设信用卡银行积分商城网站网站关键词优化培训
  • 网站建设对电子商务的意义深圳网站设计兴田德润简介
  • 门设计的网站建设北京最大专业网站建设
  • 黄埔建网站公司长沙 网页制作
  • 网站页面海珠网站建设方案
  • 东宁网站制作公司产品彩页设计
  • 郑州大搜索网站为什么要建立网站
  • 广东网站建设公司排名网页设计模板网站免费
  • 佛山网站建设小程序注册营业执照申请
  • 网站建设文案策划鞍山兼职吧
  • 手机投资网站合肥seo优化排名公司
  • 上海网站制作公司的排名药品网站如何建设
  • 模板网站建设包括哪些wordpress怎么加关键词和描述
  • 温岭专业自适应网站建设响应式网站 模版
  • 高端包装设计优化 英语
  • 佛山新网站建设方案笔记本做网站服务器
  • c 企业网站开发杭州百度人工优化
  • 瑞安公司网站建设wordpress 主题和插件下载失败
  • 茶楼网站模板wordpress后台图
  • 做网站的流程方法wordpress 导航栏 排序
  • 当当网书店网站建设案例照片制作相册
  • 手机网站空间wordpress改微博系统