android下拉重新整理和listview衝突解決方案
相關文章:
常見的下拉重新整理都是帶有一些自定義的listview、gridview和webview,我們導包直接用就行了,但是為什麼他們要自定義一些常用的控制元件呢?直接在外邊套用不行嗎?類似於SwipeLayout,他是在ViewGroup的層面上動刀,可以巢狀任何的元件的,那麼我們先去看一個效果你就知道了。
效果圖:
我之前用的都是封裝庫,沒有怎麼碰到過這種情況,但是自己寫了一個下拉重新整理之後,碰到這種問題,不用思考,一看就是下拉重新整理和listview滑動衝突了,你是否明白了我在文章開頭說的那個問題了?
問題分析:
出現這個問題,首先考慮的就是因為下拉重新整理中巢狀的listview,根據View的分發機制可以知道,內部的view的時間最終是返回到外層的ViewGroup中進行處理得,說白了,如果不作處理的話,下拉重新整理這個ViewGroup的會代替listview處理觸控事件。
問題解決:
在ListView中監聽滑動是否在頭部,如果不在頭部攔截觸控機制ListView自己處理行為,如果滑到了頭部則放行觸控機制放行給外層下拉重新整理來處理行為。
程式碼:
自定義ListView攔截,在onInterceptTouchEvent中攔截
在你的xml檔案中使用這個自定義的listview,然後執行程式碼,看效果:/** * 自定義RefreshListView */ public class RefreshListView extends ListView { public PullListView(Context context) { super(context); } public PullListView(Context context, AttributeSet attrs) { super(context, attrs); } public PullListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { //判斷是否滑動到頂部了 if (getFirstVisiblePosition() == 0 && getChildAt(0).getTop() == 0) {//到頂部了 //返回觸控事件 getParent().requestDisallowInterceptTouchEvent(false); } else {//沒有到頭部 //攔截觸控事件 getParent().requestDisallowInterceptTouchEvent(true); } return super.onInterceptTouchEvent(ev); } }
處理成功,其他的也是一樣的道理。
相關推薦
android下拉重新整理和listview衝突解決方案
相關文章: 常見的下拉重新整理都是帶有一些自定義的listview、gridview和webview,我們導包直接用就行了,但是為什麼他們要自定義一些常用的控制元件呢?直接在外邊套用不行嗎?類
Android 下拉重新整理與 ListView衝突問題
當我們使用RefreshLayout巢狀ListView進行下拉重新整理時,有時候會出現listview可以上拉到底,但是下拉時就會進行重新整理操作,而不是滑動listview了。 出現這種問題的原因是在RefreshLayout控制元件中,只能夠放ListV
mint-UI上拉載入下拉重新整理和fastclick衝突問題解決
當我們的Vue專案為了解決IOS裝置事件點選卡頓,300ms的延遲的問題,引入了fastclick後,會有很多小的衝突,例如在使用mint-UI實現上拉載入和下拉重新整理的時候,經常會觸碰到點選事件進入下一個頁面,這是因為去掉300毫秒的延遲就會使得頁面特別靈敏,想著用阻止冒泡的方式來解決。 在
Android下拉重新整理和上拉載入
先看看XML佈局檔案,下拉重新整理和上拉載入哪個在外層並沒有什麼影響。最裡面嵌套了一個RecycleView。 <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/gridswipre
Android分組列表懸停顯示,分組listView懸停效果,帶下拉重新整理和上拉載入更多
分組列表,帶下拉重新整理和上拉載入更多【專案地址在文章最後!!】 效果圖: 實現過程,借鑑PinnedHeadListView,但是該demo沒有下拉重新整理功能,故將該控制元件整合到PullToRefresh 庫中,【PullToRefresh 庫為第
解決SwipeRefreshLayout下拉重新整理與ListView下拉的衝突
如果當我們使用 ListView 的時候使用了 SwipeRefreshLayout 下拉重新整理,那麼 ListView 的向下滑動就會與 SwipeRefreshLayout 的下拉重新整理產生衝突。當我們下拉介面時, SwipeRefreshLayout 會優先獲取
打造通用的Android下拉重新整理元件 適用於ListView GridView等各類View
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
android smartRefresh下拉重新整理和上拉載入
1.遠端依賴 compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.5.1' 2.佈局中使用 <com.scwang.smartrefresh.layout.SmartRefreshLayout androi
android自定義下拉重新整理和上拉載入控制元件
import android.content.Context; import android.graphics.Point; import android.support.v4.view.MotionEventCompat; import android.support.v4.view.NestedScro
自定義ListView實現下拉重新整理和上拉載入
實現ListView的下拉重新整理和上拉載入,需要先新增headerView和footerView,通過在拖動的過程中,控制頭尾佈局的paddingTop實現。先把paddingTop設為負值,來隱藏header,在下拉的過程中,不斷改變headerView的p
android 模仿知乎下拉重新整理和上拉載入
效果圖如下 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/
android快速開發框架--快速實現 頁面 載入中 載入失敗 無資料等狀態以及下拉重新整理和自動載入
RapidDevelop-Android快速開發框架 框架持續更新中 這個框架是從平時專案裡用的比較多的框架裡整合而來 對本專案感興趣的可以一起研究喜歡的朋友歡迎star 同時也歡迎大家的寶貴意見issues 如果大家對MVP模式的開發 網路爬蟲以及快取策略
Android RecyclerView下拉重新整理和上拉載入封裝
效果圖:程式碼已經同步到github~Gradle引入依賴: allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
(Android)五分鐘讓你輕鬆學會下拉重新整理和上拉載入更多
分享一個谷歌自帶的下拉重新整理和上拉載入更多例子: 先看效果圖: /** * 繼承自SwipeRefreshLayout,從而實現滑動到底部時上拉載入更多的功能. */ public class RefreshLayout extends SwipeRefreshL
Android 自定義下拉重新整理和上拉載入
完整程式碼在最下面。。 頭佈局xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pare
Android簡單實現下拉重新整理和上拉重新整理
先把佈局檔案裡面新增一個ListView控制元件, <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.a
Android —頁面下拉重新整理(ListView與SwipeRefreshLayout)
相信大家在使用淘寶的時候應該都看到過下拉重新整理的效果。這種效果看起來會感覺比較難做,一起來看下下拉重新整理。 ListView 思路: 通過FrameLayout底層為下拉重新整理的Header,上面一層是ListView,監聽手指滑動設定動畫效
畢業設計之android混合模式開發第一天--具有下拉重新整理和頁面載入等待的WebView搭建
第一次真正接觸android的混合模式開發,之前瞭解過如何進行混合模式的開發,常見的是通過WebView元件載入url,使用HTML5和CSS3構建手機端響應式佈局。 今天主要是搭建出一個可載入url,具有下拉重新整理和頁面等待的WebView。 2.頁面等待的實現主要是
Android 下拉重新整理 左右滑動 事件衝突
截獲listview和refreshlayout的dispatchTouchEvent方法,針對不同滑動通知父容器是否通知子控制元件獲取事件 CusMaterialRefreshLayout float xDown = -1,yDown=-1; @Overrid
android SwipeRefreshLayouth和ListView衝突解決
在最近的專案中,遇到下拉重新整理的需求..第一時間就想到了谷歌自家的SwipeRefreshLayouth,以前用過這個東西,在這裡面放一個listview或者gridview的時候效果很不錯.當初寫demo的時候也是這麼寫的.但是當真正使用他的時候,就發現了尷尬的事情.例