❶ 為什麼ios和android的下拉列表
最直接的原因在於,iOS 中的列表滾動是有「回彈」的。當列表拉到頭的時候還可以繼續往下拉一段距離,讓用戶感覺上面還有內容。所以 Loren Bichter 最早在 Tweetie 中加入 pull to refresh 功能的時候,大家會覺得這種刷新的方法很自然。
而 Android 系統則沒有回彈特性,列表拉到頭無法繼續往下拉(CM 中可以,這個另當別論)。如果硬是要用下拉載入,反而顯得比較生硬。
❷ android中scrollview怎麼實現阻尼回彈
1。你可以用ViewFlipper 來實現效果,每一張圖片為一頁,加上滑屏動畫效果,這個網上資料很全。2。你可以使用gallery來顯示圖片,這個跟ListView的使用方法是一樣的,網上資料和SDK文檔裡面都介紹很詳細。3。用手勢監聽需要給View上面實現OntouchListener,具體方法跟ViewFlipper的翻頁效果是一樣的
❸ 【Android】打造下拉放大效果
在其他App上看到了這樣的一個效果,感覺有點意思,於是決定實現一個類似的效果。
( 其實是iOS的同學在實現功能的時候隨意發揮了一下 )
效果大概值這樣子的:
UI看完後
「這個效果不錯啊」
「要不你們Android也么做?」 於是~~
作為一個有追求的程序員,決定也要實現一個這樣的效果 (滿腦子都是草泥馬在奔騰)
這樣的效果嘛~~
利用自定義的 ViewGroup ,通過對手勢的處理,應該就能實現了吧?
主要應該分兩部分:
比較麻煩的應該是在第一部分,需要對事件的分發有一些理解。
說到手勢的判斷,難免需要對事件分發進行處理。
下拉部分
1、在 onInterceptTouchEvent 中對事件進行處理,如果為下拉事件,則將該事件攔截,交給 onTouchEvent 處理;
2、在 onTouchEvent 中通過計算得到下拉的距離,然後動態改變 Header 的配置,實現放大的效果。
重置部分
在 onTouchEvent 的 ACTION_UP 中重置 Header ,實現回彈
知道思路以後,實現起來就比較簡單了
創建一個 ViewGroup (這么命名為 FlexibleLayout )繼承 LinearLayout 。
onInterceptTouchEvent的處理
先通過兩個條件判斷是否為下拉事件:
然後通過 mIsBeingDragged 來標記開始拖拽
onTouchEvent的處理
修改頭部大小
得到下拉的距離後,就可以來改變 Header 的大小,實現放大效果了。
放大、重置的部分大家可以自由發揮
這里利用 Math.pow(offsetY, 0.8) 得到實際需要增加的高度,通過計算得到對應的寬度以及偏移(類似阻尼效果)。
重置頭部
直接將寬高以及偏移設置成原來的參數即可。
(如果覺得這樣重置過程不夠絲滑,可以通過動畫來完成一個流暢的重置效果,這里就不演示了)
到這里,一個簡易拉下放大的效果就做完了。試試效果
使用
直接在需要下拉放大的布局外面套上 FlexibleLayout 即可,例如 ScrollView
效果
ScrollVIew:
RecyclerView:
CoordinatorLayout:
大功告成!!!
當然裡面還有一些細節的處理,比如下拉的條件、回彈的動畫、最大高度等,具體內容的可以在 源碼 中看到。
完成下拉放大後,貌似把一個很重要的功能遺忘了下拉刷新 ??
光顧這下拉放大,刷新怎麼辦?【黑人問號】
這個功能留著下周實現吧,我的7小時睡眠已遙遙無期~~
雖然沒有直接實現下拉刷新的功能,不過源碼中已經暴露了一個下拉的監聽,你也可以通過這個監聽實現下拉刷新的操作
到這里就結束了
(來還上周欠下的債~~)
和下拉放大類似,通過希手指下滑的監聽,利用 View 的 translationY 和 rotation 實現移動和旋轉。
具體的實現過程這里就不貼出來了,直接看效果吧
有興趣的可以直接去 Github 上看源碼以及用法。
Github
PullZoomView
Android事件分發機制 詳解攻略,您值得擁有
❹ android中怎樣把listview就是拉出范圍之後有回彈效果
網上有開源控制項:下拉刷新控制項PullToRefreshListView, 網路搜一下就知道了,網上還有用法
❺ android 中如何去掉listView自帶的回彈效果
在xml中,listView的一個屬性
android:overScrollMode="never"
在代碼中
mListView.setOverScrollMode(View.OVER_SCROLL_NEVER);
設置後,魅族等手機下拉時就不會顯示HOLD了
❻ Android 頁面拉倒最邊上,有個藍色的回彈效果,這個效果學名叫做什麼,如何修改。如圖所示
ScrollView 滑動到頂部的陰影效果 阻尼才是回彈