ListView相关

来源:互联网 发布:网络域名交易合同骗局 编辑:程序博客网 时间:2024/05/16 10:16

一、listview 监听上滑还是下滑

[html] view plain copy
  1. <span style="font-size:12px;">listView.setOnScrollListener(new AbsListView.OnScrollListener() {  
  2.              @Override  
  3.              public void onScrollStateChanged(AbsListView view, int scrollState) {  
  4.   
  5.              }  
  6.   
  7.              @Override  
  8.              public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {  
  9.            
  10.                  if (firstVisibleItem > lastVisibleItemPosition) {// 上滑  
  11.                      ivCamera.setVisibility(View.GONE);  
  12.                  } else if (firstVisibleItem < lastVisibleItemPosition) {// 下滑  
  13.                      ivCamera.setVisibility(View.VISIBLE);  
  14.                  } else {  
  15.                      return;  
  16.                  }  
  17.                  lastVisibleItemPosition = firstVisibleItem;  
  18.              }  
  19.          }  
  20.         );</span>  

二、listview  上滑时某个控件悬浮置顶

listview布局

[html] view plain copy
  1. <FrameLayout  
  2.         android:layout_width="match_parent"  
  3.         android:layout_height="match_parent"  
  4.         android:layout_below="@id/header">  
  5.   
  6.         <com.handmark.pulltorefresh.library.PullToRefreshListView  
  7.             android:id="@+id/listview"  
  8.             android:layout_width="match_parent"  
  9.             android:layout_height="match_parent"  
  10.             android:background="#e0e0e0"  
  11.             android:divider="@null"  
  12.             android:dividerPadding="0dp"  
  13.             android:scrollbars="none" />  
  14.         <要置顶的布局> 
  15. ...
  16. ...
  17.         <要置顶的布局/>  
  18.     </FrameLayout>  

要置顶的控件单独在写一个layout
[html] view plain copy
  1. <要置顶的布局/>  

[java] view plain copy
  1. listView.addHeaderView(xuanfu);//悬浮式inflate进来的要置顶控件的布局  
  2.   
  3.         listView.setOnScrollListener(  
  4.                 new AbsListView.OnScrollListener() {  
  5.                     @Override  
  6.                     public void onScrollStateChanged(AbsListView view, int scrollState) {  
  7.   
  8.                     }  
  9.   
  10.                     @Override  
  11.                     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {  
  12.                         if (firstVisibleItem > 1) {  
  13.                             ll_float.setVisibility(View.VISIBLE);//ll_float 为listview布局里面需要置顶的控件  
  14.                         } else {  
  15.                             ll_float.setVisibility(View.GONE);  
  16.                         }  
  17.                     }  
  18.                 }  
  19.         );  

三、listview监听滑动距离

[html] view plain copy
  1. listView.setOnScrollListener(  
  2.                 new AbsListView.OnScrollListener() {  
  3.                     @Override  
  4.                     public void onScrollStateChanged(AbsListView view, int scrollState) {  
  5.   
  6.                     }  
  7.   
  8.                     @Override  
  9.                     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {  
  10.                          
  11. //                            if (view != null && view.getChildAt(0) != null && view.getChildAt(0).getTop() != 0) {  
  12. //  
  13. //                                int height_item1 = view.getChildAt(1).getTop() - view.getChildAt(0).getTop();  
  14. //                                int height_item2 = view.getChildAt(2).getTop() - view.getChildAt(1).getTop();  
  15.   
  16.                     }  
  17.                             
  18.                     }  
  19.                 }  
  20.         );  
0 0