1. 程式人生 > >listview新增頭部後判斷是否到達頂部的方法

listview新增頭部後判斷是否到達頂部的方法

今天使用listview+swiperefreshlayout進行重新整理頁面的製作,因為需要在頭部新增一個viewpager,所以索性就listview.addheaderview進行了,發現添加了頭部以後不能夠通過firstVisibleItem進行判斷,一般我們常規寫法如下:

 listView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView view, int
scrollState) { //或者在這裡判斷 if (view.getFirstVisiblePosition()==0){ //同樣也可以 } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if
(firstVisibleItem == 0 ) { //到達頭部 } });

但由於我們加了一個頭部,所以不能通過上述方法判斷,那該如何判斷呢?
我們可以通過獲取頭部的高度位置,即(getY())方法進行判斷:

 listView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView view, int
scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (firstVisibleItem<=oldfirstVisibleItem &&firstVisibleItem==0 &&getHeaderY()==0){ //到頭部後的操作 }else { //其餘操作 } oldfirstVisibleItem=firstVisibleItem; } }); //判斷 private float getHeaderY(){ View headerView= listView.getChildAt(0); if (headerView!=null){ LogUtils.showE("headerView.getY();",headerView.getY()+""); return headerView.getY(); } return -1f; }

相關推薦

listview新增頭部判斷是否到達頂部方法

今天使用listview+swiperefreshlayout進行重新整理頁面的製作,因為需要在頭部新增一個viewpager,所以索性就listview.addheaderview進行了,發現添加了頭部以後不能夠通過firstVisibleItem進行判斷,一

ListView新增HeadView佈局紊亂的問題

       今天在做專案時,開發了一個類似聯絡人列表,但要求頂部內容固定、可跟隨ListView滾動的功能,雖然使用給ListView新增HeadView的方法實現了效果,但在開發的過程中,還是遇到

ListView新增條目,條目顯示的順序問題

在ListView中,item的排列順序是受集合的順序影響的,一般情況下,每動態增加一個條目,(listview就會呼叫getView方法對整個listview進行一次重繪,) 這個新增條目會新增在l

UITableView新增頭部檢視,並解決新增無法滑動的問題

在UITableView裡面添加了頭部檢視後,如果頭部檢視大於介面的高度,可以滑動,但是如果這時候再給新增cell的時候,發現cell並不出現,而且頭部也不能滑動,即使可以滑動也沒有出現cell。 只要繼承UITableView,並重寫一個方法,就可以解決該問

RecyclerView 判斷滑到底/頂部方法

mode sbo style osi set vertica 條件 pos cif 判斷RecyclerView到達底部的幾種方法項目中的案例mRvChat.addOnScrollListener(new RecyclerView.OnScrollListener() {

私人影院火爆快速死亡?

廣電總局 投影幕布 朋友聚會 創業者 電影院 在這個互聯網無孔不入的快節奏時代,大眾不僅需要更多的娛樂新方式,而且還必須能夠有更好的隱私性和舒適性。面對這種新需求,為特定群體打造的娛樂方式層出不窮地出現。迷你KTV、私人影院等,都是其中的代表。而私人影院在國內範圍內的火爆之勢,也讓其成為眾

Android項目實戰(二十):淺談ListView懸浮頭部展現效果

save Coding 布局 相同 mar state clas pla stat 原文:Android項目實戰(二十):淺談ListView懸浮頭部展現效果  先看下效果:需求是 滑動列表 ,其中一部分視圖(粉絲數,關註數這一部分)在滑動到頂端的時候不消失,而是停留在整個

記錄Android開發一個小坑,佈局檔案TextView中新增onClick,點選無效問題

自己寫東西的時候,在TextView上添加了onClick去增加點選事件,去跳轉另一個Activity,執行後結果點選無效,新增Toast,Toast也不顯示,程式碼如下: <TextView android:layout_width="wrap_content"

requests筆記2---新增頭部資訊

import requests url = 'https://www.amazon.cn.gp/product/B01M8L5Z3Y' try:     kv = {'user-agent':'Mozilla/5.0'}     r = requests.

kong route新增hosts不能訪問的問題

kong route新增hosts後不能訪問的問題 kong 閘道器新增route時,可以指定hosts的值,這裡的hosts還可以指定多個,但是lz在時間過程中遇到了問題,配置hosts後不能訪問,我的route配置 使用postman訪問 不用postman訪問,直接在伺服

從零開始學習 asp.net core 2.1 web api 端api基礎框架(七)-新增一個查詢單筆資料的方法

再寫一個查詢單筆資料的方法: [Route("{id}")] public JsonResult GetProduct(int id) { return new JsonResult(ProductService.Curre

ajax游標離開判斷使用者名稱或密碼是否重複

註冊頁面(register): <input type="text" placeholder="請輸入6-20個字元" class="inp" name="uname" id="uname" > <script> $("#uname").blur(function

gsoap入門:C/C++程式碼生成及編譯--包含soapcpp2 -qname新增名稱空間報錯的解決方法--可用

gsoap是什麼 先來一段百度百科,說說gsoap是什麼: gSOAP一種跨平臺的開源的C/C++軟體開發工具包。生成C/C++的RPC程式碼,XML資料繫結,對SOAP Web服務和其他應用形成高效的具體架構解析器,它們都受益於一個XML介面。 這個工具包提供了一個全面和透明的XML資料繫結解決方案,A

COCOS 3.0 ListView新增條目數

首先建立ListView的layer層,再建立單獨項的Node.csb;然後 在Layer層傳入資料呼叫,通過insertCustomItem()插入每條資料; //節點的建立 .h #pragma once #include "cocos2d.h" #include "

vim建立程式檔案自動新增頭部註釋/自動檔案頭註釋與模板定義

Vim 自動檔案頭註釋與模板定義 在vim的配置檔案.vimrc新增一些配置可以實現建立新檔案時自動新增檔案頭註釋,輸入特定命令可以生成模板。 使用方法 插入模式輸入模式輸入seqlogic[Enter]建立時序邏輯框架 新建立一個檔案 gvim test.c 自動

《資料庫技巧》java對資料庫新增資料,中文字元變成問號

資料庫:mysql 開發工具:eclipse 遇到的問題:編寫對mysql資料庫的新增語句,然後執行專案後,發現所有的中文內容,在資料庫中均顯示成問號 上述程式碼是向資料庫新增資料的程式碼,執行完畢後,開啟資料庫的顯示如下: 發生這

Fiddler抓包工具手機新增代理連不上網

fiddler工具給手機設定代理之後,手機竟然上不了網了,嘗試了N種解決方法,終於給解決了,因此,記錄下來以備不時之需。 1、fiddler給手機新增代理 開啟fiddler工具->Tools->Fiddler Options,記住下面的埠號;   電腦和手機連線同一個網路,確保

資料結構實驗之圖論三:判斷性(SDUT 2138)(簡單DFS)

#include <bits/stdc++.h> using namespace std; int gra[1002][1005]; int vis[1002]; int n,m; void dfs(int x) { vis[x] = 1; for(int i = 1

SDUT-2138_判斷

資料結構實驗之圖論三:判斷可達性 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在古老的魔獸傳說中,有兩個軍團,一個叫天災,一個叫近衛。在他們所在的地域,有n個隘口,編號為1..n,某些隘口之間是有通道連線的。其中近衛軍團在1

淘淘商城專案_同步索引庫問題分析 + ActiveMQ介紹/安裝/使用 + ActiveMQ整合spring + 使用ActiveMQ實現新增商品同步索引庫_匠心筆記

文章目錄 1、同步索引庫問題分析 2、ActiveM的介紹 2.1、什麼是ActiveMQ 2.2、ActiveMQ的訊息形式 3、ActiveMQ的安裝 3.1、安裝環境 3.2、安裝步驟