Android实现一个选择器-recycleview滚动中第一个item位置的获取
来源:互联网 发布:ubuntu 修改系统语言 编辑:程序博客网 时间:2024/04/18 10:42
package com.example.administrator.testanima.ActivityTwo;import android.content.Context;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.view.WindowManager;import com.example.administrator.testanima.R;import java.util.ArrayList;import java.util.List;import java.util.zip.DeflaterOutputStream;/** * Created by Administrator on 2017/6/13. */public class ActivityTwo extends AppCompatActivity { List<MyBean> list; int widthScreen; int useWidth; Handler handler; RecyclerView recyclerView; MRecycleViewAdapter mRecycleViewAdapter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_two); initRecycleView(); } private void initRecycleView() { recyclerView = (RecyclerView) findViewById(R.id.recycleview); list = new ArrayList(); for (int i = 0; i < 100; i++) { MyBean myBean = new MyBean(); myBean.setCheck(false); myBean.setNumber(i + ""); list.add(myBean); } LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);//设置水平 mRecycleViewAdapter = new MRecycleViewAdapter(list, ActivityTwo.this); recyclerView.setLayoutManager(linearLayoutManager); recyclerView.setAdapter(mRecycleViewAdapter); setRecycleView(); } private void setRecycleView() { recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); double itemWidth = 0.2 * widthScreen; //这个位置表示目前在屏幕显示的第一个item的位置 int centerPosition = getPosition() + (int) (useWidth / itemWidth); Log.e("中间的位置", centerPosition + "="); for (int i = 0; i < list.size(); i++) { if (i != centerPosition) { list.get(i).setCheck(false); } else { list.get(i).setCheck(true); } } mRecycleViewAdapter.notifyDataSetChanged(); } }); } @Override protected void onResume() { super.onResume(); //获取view的中心坐标 getPoint(); } private void getPoint() { /*由于考虑到view可能还没绘制,所以来一个延时的线程获取view的位置*/ WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); widthScreen = wm.getDefaultDisplay().getWidth(); final View view = findViewById(R.id.top); ViewGroup.LayoutParams v = view.getLayoutParams(); v.width = (int) (widthScreen * 0.2); v.height = (int) (widthScreen * 0.2); handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); } }; handler.postDelayed(new Runnable() { @Override public void run() { int X = view.getLeft(); int Y = view.getTop(); int width = view.getWidth(); Log.e("四个参数", X + "=" + Y + "=" + width + "=" + widthScreen); useWidth = X + width / 2; } }, 1000); } /*获取recycleview中当前显示的第一个item的position*/ private int getPosition() { LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager(); int position = layoutManager.findFirstVisibleItemPosition(); return position; }}
阅读全文
3 0
- Android实现一个选择器-recycleview滚动中第一个item位置的获取
- recycleview获取第一个和最后一个可见item的位置
- android获取recycleview滚动的距离
- RecycleView实现拖拽交换item位置
- 获取一个字符串里的第一个数字的位置
- recycleview 使用侧滑删除 android 6.0机型出现item抖动;列表一屏以上,点击后面的item(需要滚动查看了) 然后马上会往上滚动回首个item,滚回第一项
- Android中Recyclerview使用14----RecycleView的item间距设置
- java:获取字符串中第一个汉字和第一个汉字汉字标点符号的位置
- 安卓开发——问题:RecycleView做瀑布流滚动时,已加载item的位置来回变动
- 【Android】用RecycleView实现可以横向滚动的ListView效果
- android项目从零开始 RecycleView 设置滚动到某item时间
- android 设置Gridlayout中item的位置
- ListView 中Item 位置获取
- android图片滚动选择器的实现
- RecycleView如何实现item的点击事件
- 如何获取recyclerView的第一个Item的视图
- Android-RecycleView的item点击事件
- Android开发RecycleView的Item分割线
- Linux进程通信之二元信号量
- Android进阶之路
- Eclipse 处理svn:ignore忽略文件同步管理
- cacti远程监控原理及简单配置
- 文件的上传与下载
- Android实现一个选择器-recycleview滚动中第一个item位置的获取
- EffectiveC++学习笔记-条款4
- replace用法案例
- Python基础(二)
- 牛腩--基础知识(二)
- jenkins自动化部署安装部署(Windows-SVN版)
- 简单的python代码改造为多线程案例
- ubuntu下搭建svn服务器
- Python Selenium结合使用的一个小例子