package com.bi.demo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private ListView listView1,listView2;
private TextView tv;
private List1Adapter adapter1; private int item;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); listView1= (ListView) findViewById(R.id.listView1);
listView2= (ListView) findViewById(R.id.listView2);
tv= (TextView) findViewById(R.id.tv); ArrayList <Lei>list1=new ArrayList<Lei>();
list1.add(new Lei("weocio",R.mipmap.ic_launcher));
list1.add(new Lei("cvnxmvm",R.mipmap.ic_launcher));
list1.add(new Lei("wwwww",R.mipmap.ic_launcher));
list1.add(new Lei("ckkkkkkm",R.mipmap.ic_launcher));
adapter1=new List1Adapter(this,list1); listView1.setAdapter(adapter1); listView1.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(scrollState== AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { View v=adapter1.getView(0, null, listView1);
v.measure(0, 0);
int itemHeight=v.getMeasuredHeight();
int total=getScrollY(); if((total%itemHeight)>(itemHeight/2))item++; //Log.d("xx",""+getScrollY());
//Log.d("xxy",itemHeight+"");
//listView1.setSelection(item); listView1.setSelection(item);
tv.setText("" + item); }
} @Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { /* View c = listView1.getChildAt(0);
int firstVisiblePosition = listView1.getFirstVisiblePosition();
Log.d("xx",firstVisiblePosition+"");
int top = c.getTop();
Log.d("xxy",top+"");
Log.d("xxyy", -top + firstVisiblePosition * c.getHeight() + "");
*/ item=firstVisibleItem; }
}); } public int getScrollY() {
View c = listView1.getChildAt(0);
if (c == null) { return 0; }
int firstVisiblePosition = listView1.getFirstVisiblePosition();
int top = c.getTop();//这里计算的是最上边能看到的item滑上去的距离
Log.d("xxy",top+"");
return -top + firstVisiblePosition * c.getHeight() ;
}
}

listView 滑动时 滑到一半自动滑动到对应的位置的更多相关文章

  1. 解决iPhone滑动时滑到另一个层级导致卡顿问题

    问题概览: 两个div都可以滑动时,会造成滑动顶层div时,底层div也会跟着滑动.如图示. 解决方法: 添加CSS即可. 代码如下 * { -webkit-overflow-scrolling: t ...

  2. Android RecyclerView 滑动时图片加载的优化

    RecyclerView 滑动时的优化处理 在滑动时停止加载图片,在滑动停止时开始加载图片,这里用了Glide.pause 和Glide.resume.这里为了避免重复设置增加开销,设置了一个标志变量 ...

  3. 【Android - 问题解决】之ScrollView嵌套ListView时总是自动滑动到ListView顶部的问题

    最近做了一个项目,里面有一个ScrollView嵌套ListView的布局. 做出来之后发现,进入这个界面之后,总是自动滑动到ListView的顶部,而ScrollView中位于ListView上面的 ...

  4. 它们的定义ListView,实现Item除去滑动和滑出菜单效果

    这个程序是基于变化从网上开源项目,详情货源忘记.懒得去搜索,.假设有不合适的地方.请与我联系作者.我会及时回复和处理! 序中主要包括两个ListView,一个是实现側滑删除.一个是側滑出菜单,代码中的 ...

  5. Android Animation动画实战(一): 从布局动画引入ListView滑动时,每一Item项的显示动画

    前言: 之前,我已经写了两篇博文,给大家介绍了Android的基础动画是如何实现的,如果还不清楚的,可以点击查看:Android Animation动画详解(一): 补间动画 及 Android An ...

  6. 双击导航栏自动滑动ListView到顶部

    有些app都实现了双击导航栏让页面的list自动滑动到顶部的feature. 先实现一个继承于OnTouchListener的监听多次点击事件的监听器,通过callback把连续点击的次数返回给客户代 ...

  7. [置顶] android ListView包含Checkbox滑动时状态改变

    题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...

  8. android listview优化:滑动时颜色错乱问题

      最近android的listview写多了,也学习了各种listview的优化,列如viewHolder的使用.今天做item颜色设置时遇到一个新的问题.我这里设置“未完成”是灰色的,“已完成”是 ...

  9. listView解决滑动时黑色背景问题

    listView.setCacheColorHint(Color.TRANSPARENT);//解决滑动时黑色背景问题 listView滑动时黑色背景问题 原因在于ListView存在缓存颜色机制,因 ...

随机推荐

  1. epoll_wait 时 POLLERR 与 POLLIN 同时返回的现象解析(转)

    今天code review时,同事B对我代码中的poll()的处理做法提出了异议.于是做了些研究,还发现了一些好玩的故事. 异议的代码 我的代码是参考manpage写的,类似下面的做法.同事B说没有处 ...

  2. vue项目动态控制数据变动时箭头样式

    html代码 <div class="top_precent"> <span :class="{arrow:numPrecent<0}" ...

  3. rhel7磁盘管理

     一.MBR主引导记录        MBR有512个字节,分为三个部分:第一部分446个字节,存储了引导分区:第二部分64字节为分区表:第三部分2个字节结束符:每个分区需16个字节,所以MBR的模式 ...

  4. 360sdk网游支付服务

    网游支付服务   目录 1.流程介绍2.接口介绍2.1支付接口[客户端调用](必接)2.2支付结果通知接口–应用服务器提供接口, 由360服务器回调(必接)2.3订单核实接口– 服务器端接口, 应用服 ...

  5. 新闻推荐系统:基于内容的推荐算法(Recommender System:Content-based Recommendation)

    https://blog.csdn.net/qq_32690999/article/details/77434381 因为开发了一个新闻推荐系统的模块,在推荐算法这一块涉及到了基于内容的推荐算法(Co ...

  6. SSM商城项目(一)

    1. 学习计划 1.电商行业的背景. 2.宜立方商城介绍 3.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 4.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomc ...

  7. uigetfile的用法(批量读取图片)

    matlab编程中有时想调入电脑中的某个文件,现找到了一些关于uigetifile用法~~[filename, pathname] = uigetfile( ...    {'*.jpg;*.tif; ...

  8. 微信小程序之富文本解析

    亲身体验 wxparse 是个坑,弃之不用 微信小程序的 <rich-text>标签挺好用的 用法如下: 1.wxml页面 <rich-text nodes="{{node ...

  9. 基于oslo_messaging的RPC通信

    oslo_messaging源于Openstack的一个经典的模块,用以实现服务间的RPC通信.Client端将数据放入rabbitmq中,server端从消息队列中获取传送数据. oslo.mess ...

  10. php拓展

    https://github.com/phalcon/zephirhttp://blog.csdn.net/black_OX/article/details/43700707