zoukankan      html  css  js  c++  java
  • android中关于ListView的卡位说明

      需求:做项目的时候,需要将ListView的header的一个Tab卡位,即listView滑动后,Header的某一个部分可以定在ListView的顶端卡住。

      解决的方案:监听ListView的滑动,滑动的过程中得不断的获得header里面View的精准位置坐标,开始用的是View.getY()这个函数,但是后来发现这个方法是API11之前都不能用,

      最后发现利用View.getLoactionInWindow()这个方法就解决问题了。

    listView.setOnScrollListener(new OnScrollListener() {
    			
    			@Override
    			public void onScrollStateChanged(AbsListView view, int scrollState) {
    				// TODO Auto-generated method stub
    				
    			}
    			
    			@Override
    			public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
    					int totalItemCount) {
    				// TODO Auto-generated method stub
    				int[] locationTab = new int[2];
    				int[] locationView = new int[2];
    				// 获得listview的Header里面tab与顶端的动态距离
    				dongTab.getLocationInWindow(locationTab);
    				//主要是获得标题栏的高度
    				view.getLocationInWindow(locationView);
    				int headerHeight = locationView[1];
    				System.out.println("locationDong[1]***" + locationTab[1] + "**headerHeight**"
    						+ headerHeight + "**firstVisibleItem**" + firstVisibleItem);
    				if (headerHeight <= locationTab[1] && firstVisibleItem <= 1)
    					jingTab.setVisibility(View.GONE);
    				else
    					jingTab.setVisibility(View.VISIBLE);
    			}
    		});
    
  • 相关阅读:
    第一篇代码 嗨翻C语言 21点扑克
    Windows7 sp1 64位下安装配置eclipse+jdk+CDT+minGW
    MinGW-64 安装
    Windows Live Writer配置步骤
    Css 居中
    c++ 常量成员函数
    c/c++ 引用计数
    C++ 《STL源码剖析》学习-vector
    C/C++ 有符号数和无符号数
    cocos2d 内存管理机制
  • 原文地址:https://www.cnblogs.com/crazywenza/p/3459539.html
Copyright © 2011-2022 走看看