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. String特殊值的判断方式

    对String的特殊值的判断上,除了要关注是否为null,还要关注是否是空字符串. 经常处理的时候直接判断是否为Null就好了,这样很容易出现问题: if(null!=str) { //not goo ...

  2. avalon2学习教程06样式操作

    avalon2的ms-css的变革思路与ms-attr一样,将多个操作合并成到一个对象里面处理,因此没有ms-css-name="value",只有ms-css="Obj ...

  3. ajax跨域名

    跨域环境模拟: 修改host文件 三种解决的方案 1:ifram(display:none) 2:jsonp(注意是只是适合的是get请求) 生成一个带有src的script标签, 3:cros(后台 ...

  4. maven 创建war类型项目

    1. 创建maven project时选择packaging为war 2. 在webapp文件夹下新建META-INF和WEB-INF/web.xml 3. 在pom.xml中添加web项目需要的ja ...

  5. springMVC :interceptors

    1.配置拦截器 在springMVC.xml配置文件增加:     <mvc:interceptors>    <!-- 日志拦截器 -->    <mvc:interc ...

  6. 给tbody加垂直滚动条的具体思路

    [给tbody加垂直滚动条的具体思路] 给tbody加垂直滚动条的思路就是把tbody设置成display:block,然后就对其高度设置一个固定值,overflow设置成auto即可 参考:http ...

  7. PasteDeploy部署Pecan API 服务

    part 1:请求处理 使用PasteDeploy模块来实现 WSGI Services 时,都需要加载一个 paste.ini 文件,文件用来定义服务过滤和请求路由,类似于springMvc的拦截器 ...

  8. jstorm集成kafka

    本人是spark的拥趸,因为工作中需要用到jstorm,作记录如下. pom.xml <dependencies> <dependency> <groupId>co ...

  9. 对象转化为json

    google开发的Gson转换利器,String json = new Gson ().toJson(object); 一行代搞定. 别忘了引入jar包 转自:https://zhidao.baidu ...

  10. HDU-1074.DoingHomework(撞鸭dp二进制压缩版)

    之前做过一道二进制压缩的题目,感觉也不是很难吧,但是由于见少识窄,这道题一看就知道是撞鸭dp,却总是无从下手....最后看了一眼博客,才顿悟,本次做这道题的作用知识让自己更多的认识二进制压缩,并无其它 ...