很多app都会有这种页面

这种页面该怎么实现 我看了好多网友的实现方法 无一例外 都是DoubleLIstView,作为一个新时代的年轻人,我决定告别ListVIew,使用RecycleView来实现

package Fragments;import android.arch.lifecycle.LifecycleOwner;
import android.arch.lifecycle.LiveData;
import android.content.Context;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.OnScrollListener;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnScrollChangeListener;
import android.view.ViewGroup;import com.bumptech.glide.Glide;import java.util.ArrayList;
import java.util.List;import adapters.leftAdapter;
import adapters.rightAdapter;
import club.ijava.lixin03.R;public class Recycle_doubleFragment extends Fragment {private static final String ARG_PARAM1 = "param1";private static final String ARG_PARAM2 = "param2";private String mParam1;private String mParam2;// 两个recycleViewprivate RecyclerView leftRecycle;private RecyclerView rightRecycle;// 两个Mannagerprivate LinearLayoutManager leftManager;private LinearLayoutManager rightManager;// contextprivate Context mContext;//adapterprivate leftAdapter ladapter;private rightAdapter radapter;private List<String> leftDatas = new ArrayList<>();private List<String>  rightDatas = new ArrayList<>();private OnFragmentInteractionListener mListener;public Recycle_doubleFragment() {// Required empty public constructor}public static Recycle_doubleFragment newInstance(String param1, String param2) {Recycle_doubleFragment fragment = new Recycle_doubleFragment();Bundle args = new Bundle();args.putString(ARG_PARAM1, param1);args.putString(ARG_PARAM2, param2);fragment.setArguments(args);return fragment;}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (getArguments() != null) {mParam1 = getArguments().getString(ARG_PARAM1);mParam2 = getArguments().getString(ARG_PARAM2);}}@RequiresApi(api = Build.VERSION_CODES.M)@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View  view = inflater.inflate(R.layout.fragment_recycle_double, container, false);getData();leftRecycle = view.findViewById(R.id.left_recycle);rightRecycle = view.findViewById(R.id.right_recycle);leftManager = new LinearLayoutManager(mContext);ladapter = new leftAdapter(leftDatas,mContext);leftRecycle.setLayoutManager(leftManager);leftRecycle.setAdapter(ladapter);radapter = new rightAdapter(rightDatas,mContext);rightManager = new LinearLayoutManager(mContext);rightRecycle.setLayoutManager(rightManager);rightRecycle.setAdapter(radapter);rightRecycle.addOnScrollListener(new OnScrollListener() {// 最重要的是这里 这里添加一个监听器 ,找到第一个完成的屏幕上显示的item,获取他的position@Overridepublic void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {super.onScrolled(recyclerView, dx, dy);int firstCompletelyPosition = rightManager.findFirstCompletelyVisibleItemPosition();Log.i("position",firstCompletelyPosition+"scroll");}});return view;}@Overridepublic void onAttach(Context context) {super.onAttach(context);this.mContext = context;}@Overridepublic void onDetach() {super.onDetach();mListener = null;}public interface OnFragmentInteractionListener {void onFragmentInteraction(Uri uri);}void getData(){for (int i = 1; i < 10; i++) {leftDatas.add("我是第"+i);}for (int i = 10; i <100 ; i++) {rightDatas.add("我是第"+i);}}
}

import club.ijava.lixin03.R;public class rightAdapter extends RecyclerView.Adapter<rightAdapter.rightHolder> {private List<String> mRightDatas = new ArrayList<>();private Context mContext;public rightAdapter(List<String> mLeftDatas, Context mContext) {this.mRightDatas = mLeftDatas;this.mContext = mContext;}@NonNull@Overridepublic rightAdapter.rightHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {View  view =   LayoutInflater.from(mContext).inflate(R.layout.right_layout,viewGroup,false);return new rightHolder(view);}@Overridepublic void onBindViewHolder(@NonNull rightAdapter.rightHolder rHolder, int i) {rHolder.goods.setText(mRightDatas.get(i));rHolder.itemView.setTag(i);}@Overridepublic int getItemCount() {return mRightDatas.size();}static class rightHolder extends RecyclerView.ViewHolder{private TextView goods;public rightHolder(@NonNull View itemView) {super(itemView);goods = itemView.findViewById(R.id.goods);}}
}


效果图

拿到他的位置信息 想对他干啥还不容易吗
哈哈

简单实现京东分类页面相关推荐

  1. 仿京东App分类页面的实现

    今天群里有人问了关于仿京东App分类页面的实现,而我之前正好查过这方面的资料,手上正好有一个demo,正好分享给大家看看,个人觉得效果棒棒哒! 首先来看效果图吧 是不是很6呢,来分析这个demo的主体 ...

  2. 仿京东APP分类页面(mvp模式+OkHttp封装工具类+拦截器+弱引用回收)

    仿京东APP分类页面: 添加依赖 compile 'com.android.support:recyclerview-v7:24.0.0' compile 'com.google.code.gson: ...

  3. 使用Jsoup抓取京东图书分类页面图书信息

    一.目的: 1.任务 使用 Jsoup抓取京东图书分类页面的图书信息. 抓取目标分类网址例如:https://list.jd.com/list.html?cat=1713,3259,3330 给与的某 ...

  4. html商品分类列表页面,仿京东商城系列7------商品分类页面

    前言 本文我们将一起实现一个仿京东商品分类页面.废话不说,上图: 商品分类.gif 内容 商品分类展示页面涉及到的技术有Okhttp , Fresco加载机制,MaterialRefreshLayou ...

  5. 京东动态页面爬虫 scrapy+selenium

    京东动态页面爬虫 大家都知道,京东页面抓取是需要下拉滑块才能加载完全的,今天给大家分享一下用scrapy+selenium进行数据的抓取. 京东页面的解析很简单,相信大家都会xpath或者正则,bs4 ...

  6. Django 学习小组:博客开发实战第二周教程 —— 实现博客详情页面和分类页面

    本教程内容已过时,更新版教程请访问: django 博客开发入门教程. 上周我们完成了博客的 Model 部分,以及 Blog 的首页视图 IndexView. 本节接上周的文档 Django 学习小 ...

  7. 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo

    简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...

  8. 利用逻辑回归进行简单的人群分类解决广告推荐问题

    利用逻辑回归进行简单的人群分类解决广告推荐问题 参考文章: (1)利用逻辑回归进行简单的人群分类解决广告推荐问题 (2)https://www.cnblogs.com/songyifan427/p/1 ...

  9. 简单的在jsp页面操作mysql

    简单的在jsp页面操作mysql ---恢复内容开始--- 上一篇讲了在DOS界面下操作mysql 现在我们来说说怎么在jsp页面中操作mysql 要用jsp页面操作mysql需要jdbc(不是非要j ...

  10. Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5个样本)——概率预测

    Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5个样本)--概率预测 目录 输出结果 核心代码 输出结果 核心代码 # -*- coding: ...

最新文章

  1. django权限系统实现步骤_Django密码系统实现过程详解
  2. 笔记 | 吴恩达Coursera Deep Learning学习笔记
  3. FTP服务器端程序分类
  4. python nonetype转换float_如何在Python中将NoneType值从聚合转换为float?
  5. 开启及关闭go mod
  6. DHCP和DHCP中继功能与配置
  7. mysql 回滚段_MySQL和PostgreSQL比较
  8. Yii防注入攻击笔记
  9. ssms中怎么设置自增_如何在SSMS状态栏中设置自定义颜色
  10. 2016.1.20 总结(for语句,选择语句和循环语句混合使用)
  11. mac和jar的关系
  12. jQuery源码阅读
  13. 深度学习教程(12) | CNN应用:目标检测(吴恩达·完整版)
  14. 对多个Excel表中的数据进行合并计算
  15. Daimayuan Online Judge 小蜗的疑问
  16. Canvas笔触调整-8
  17. 成为软件工程师之前,你必须了解这些
  18. ​快来Pick你最喜欢的项目,飞桨黑客松Coding Party项目投票通道已开启!
  19. wincc 激活记录运行系统
  20. java时间加减分钟

热门文章

  1. 分享一款挡字幕小工具,自带翻译功能,方便看剧学英语、日语
  2. 计算机联锁控制系统翻译成英语,计算机联锁
  3. html制作清明上河图
  4. Ubuntu安装maven
  5. 大学计算机大一上学期考试试题及答案,武汉理工大学大一上学期计算机基础试题题库及答案...
  6. 千月影视APP前端搭建_①_注册apicloud账号密码
  7. 黑苹果E3-1290 v2(ivy bridge架构)安装成功案例分享
  8. maven+Tomcat热部署
  9. 【STM8L】STM8L之按键中断
  10. 手机html5跑分,吊炸天的Chrome55内核来袭 360手机浏览器成“跑分王”