1. 程式人生 > >android七種滑動方法,3種滑動機制;

android七種滑動方法,3種滑動機制;

記得之前在看醫生的群英傳裡面有寫到實現安卓中的7種滑動方法如下:

    1、layout方法
    2、offsetLeftAndRight與offsetTopandBottom;
    3、LayoutParams;
    4、scrollTo和scrollBy
    5、Scroller;
    6、屬性動畫
    7、ViewDragHelper();

但是上面的實現滑動的機制大體上分為如下三種:

    1、內容的移動
    2、佈局引數的移動
    3、屬性的移動

採用上面三種滑動機制來對一個FrameLayout做一個,向右滑動100px效果分別如下:
這裡寫圖片描述

從效果很容易發現
1、內容移動,通過移動裡面的內容來實現滑動,其本身是不會滑動的,也就是我們常說的Scroller;所以TranslationX和left是不會發生變化的;
2、屬性滑動,通過修改TranslationX屬性來實現移動,也就是我們常說的屬性動畫;所以其layout的佈局引數是不會發生變化的;
3、佈局引數滑動:通過修改Left,bottom等佈局引數實現的滑動,其屬性是不會發生變化的;

為什麼屬性和佈局引數都可以實現滑動,原因:
view.getX()決定這個View的在父容器的位置,而:
view.getX()=view.getTranslationX()+view.getLeft();
所以通過屬性和佈局引數都是可以讓View進行一個滑動的
一般來說,getTranslationX()預設是0;

總結:
對於上面的7中滑動的實現方式分類:

        1、layout方法 :佈局引數滑動
        2、offsetLeftAndRight與offsetTopandBottom;:佈局引數滑動
        3、LayoutParams;:佈局引數滑動
        4、scrollTo和scrollBy:內容滑動
        5、Scroller;:內容滑動
        6、屬性動畫:屬性滑動;
        7、ViewDragHelper();:佈局引數的滑動;

如果我們想要滑動的話,該採用那種方式呢?
這裡借用藝術探索裡面的內容:

1、內容滑動: 操作簡單,多用於view內部的滑動
2、屬性滑動:操作簡單,實現沒有互動的view和實現複雜的動畫效果;
3、佈局引數的滑動:操作複雜,適合有有互動的View

android系統原生的控制元件ScrollView我們檢視原始碼可以知道,其實現的滾動採用的是內容滾動;

相關推薦

android滑動方法3滑動機制

記得之前在看醫生的群英傳裡面有寫到實現安卓中的7種滑動方法如下: 1、layout方法 2、offsetLeftAndRight與offsetTopandBottom; 3、LayoutParams; 4、scrollTo和sc

100份PDF轉換WordWord轉PDF3方法幫你一鍵解決!

100份PDF轉換Word,Word轉PDF,3種方法幫你一鍵解決!相信大家在辦公時候偶爾會將檔案之間進行相互轉換,如果這時候領導突然給你100風PDF檔案,讓你幫他轉換成Word,你該如何是好呢?剛入職場的你肯定是一臉懵逼!那麼今天在這裡為大家整理了3種方法,幫你一鍵解決! 方法1:複製貼上法

android中RadioButton中的自帶的圓圈如何去掉方法.xml、一程式碼中

第一種.xml中 我想大家都知道 android:button="@null"其實這就是簡單的多RadioButton做的一個自定義,null就是給他為空,所以就變相的隱藏掉了它自帶那個圓圈。 重點是第二種的方法,在java程式碼中:RadioButton IB_PullD

基於Android中實現定時器的3解決方法

在Android開發中,定時器一般有以下3種實現方法:一、採用Handler與執行緒的sleep(long)方法 二、採用Handler的postDelayed(Runnable, long)方法 三、採用Handler與timer及TimerTask結合的方法下面逐一介紹

Android學習筆記2 TextView圖文混排顯示新增的圖片常用方法親測

圖文混排,文字就不說了,主要是顯示圖片的方法 1、TextView使用ImageSpan顯示圖片 ImageSpan span = new ImageSpan(this, R.drawable.ic_launcher);//載入圖片的資源 SpannableStrin

ExtJs--09--javascript對象的方法3寫法 prototype通過原型設置方法效率最好

共享 name script div code javascrip 寫法 proto alert /** * javascript對象的方法的3種寫法 推薦第三種 運行效率最好 */ function P(name , age){ this.name

.Net MVC 導入導出Excel總結(三導出Excel方法導入Excel方法) 通過MVC控制器導出導入Excel文件(可用於java SSH架構)

ets esp llb pat lencod cnblogs 創建 etime mmd public class ExcelController : Controller { // // GET: /Excel/ M

關於Facebook、twitter、google、pinterest四分享方法附帶微博、QQ、微信、豆瓣等等

設計 document 類型 默認 設計圖 sta over conf too   常用的國外網站分享推過,Facebook、twitter、google、pinterest這四種社交平臺最常見,下面就簡單介紹一下分享的方法。   首先,必須使用分享插件,share.js

手機端白屏前端優化的方法5 以上

渲染 阻塞 rip 數據 通過 可能 執行 需要 滾動 手機白屏主要是因為頁面渲染阻塞導致的,導致的原因有: 1:css文件加載需要一定的時間,在加載的過程中頁面是空白的 解決:將css代碼前置或者內聯html 即使用<style> 2.可能是等待異

機器學習的13演算法和4學習方法推薦給大家

機器學習的演算法很多。很多時候困惑人們都是,很多演算法是一類演算法,而有些演算法又是從其他演算法中延伸出來的。這裡,我們從兩個方面來給大家介紹,第一個方面是學習的方式,第二個方面是演算法的分類。 一、4大主要學習方式 1.監督式學習 在監督式學習下,輸入資料被稱為“訓練資料”,

day030程序的兩建立方法驗證程序的空間隔離join等待子程序

本節內容: 1.作業系統的簡單介紹 2.程序的兩種建立方法 3.程序之間是空間隔離的, 參考文章: 一、作業系統的簡單介紹 1、作業系統簡單介紹 作業系統就是一個協調、管理和控制計算機硬體資源和軟體資源的控制程式。 作業系統位於計算機硬體與應用軟體之間,本質也是一個軟體。 作業系統由作業系統的核心(

淺談http協議六請求方法get、head、put、delete、post、options區別

原帖:https://www.cnblogs.com/wei-hj/p/7859707.html 標準Http協議支援六種請求方法,即: 1、GET 2、POST 3、PUT 4、Delete 5、HEAD 6、Options 但其實我們大部分情況下只用到了GET和P

Android指紋識別API講解更快更好的使用者體驗

 我發現了一個比較怪的現象。在iPhone上使用十分普遍的指紋認證功能,在Android手機上卻鮮有APP使用,我簡單觀察了一下,發現Android手機上基本上只有支付寶、微信和極少APP支援指紋認證功能,就連銀行和金融類的應用都基本不支援,甚至很多開發者都不知道Androi

淺析軟體成本估算之NESMA方法3應用場景(轉載)

NESMA為荷蘭軟體度量協會的簡稱(Netherland Software Measurement Association),NESMA功能點方法是五種ISO國際功能點標準之一,不但易學易用、快速、經濟,而且容易開發和建立使用者自己特有的估算模型。 在五種國際標準中,只有NESMA方法定

淺析軟體成本估算之NESMA方法3應用場景

NESMA為荷蘭軟體度量協會的簡稱(Netherland Software Measurement Association),NESMA功能點方法是五種ISO國際功能點標準之一,不但易學易用、快速、經濟,而且容易開發和建立使用者自己特有的估算模型。 在五種國際標準中,只有NESMA方法定

Linux新增PYTHONPATH方法以及3修改環境變數方法

在用Linux(OS:Centos 7.2)時看到有一行程式碼是: export PYTHONPATH=$PYTHONPATH:/home/usrname/models:/home/usrname/models/one 意思是將models以及其目錄下的o

稀疏矩陣的儲存方法3)及C語言程式碼實現

稀疏矩陣,即含有少量非 0 元素的矩陣,如圖 1 所示:   圖 1 稀疏矩陣    該矩陣中非 0 元素的數量比較少,與其使用普通方式將矩陣中的所有資料元素一一儲存,不如只儲存非 0 元素更節省記憶體空間,拿圖 1 中矩陣來說,只需儲存元素 3、4、5 即可(此類儲存方式被稱為稀疏矩陣的壓縮儲存)。

分治法:快速排序3劃分方式隨機化快排快排快還是歸併排序快?

快速排序不同於之前瞭解的分治,他是通過一系列操作劃分得到子問題,不同之前的劃分子問題很簡單,劃分子問題的過程也是解決問題的過程 我們通常劃分子問題儘量保持均衡,而快排缺無法保持均衡 快排第一種劃分子問題實現方式,左右填空的雙指標方式 def partition_1(arr,low

Spring的四事務特性隔離級別傳播行為

Spring事務:什麼是事務:事務邏輯上的一組對資料對操作,組成這些操作的各個邏輯單元,要麼一起成功,要麼一起失敗。事務特性(4種):原子性(atomicity):強調事務的不可分割;一致性(consistency):事務的執行前後資料的完整性保持一致;隔離性(isolati

height:100%; 不起作用的四解決方法子級溢位來父級卻沒有撐開

專案中遇到一個問題: 父級高度是auto,子級高度100%但是元素卻無法撐滿,總結了一下有下面三種方法,親測有效: 1:給父元素設為塊級並加固定高度 2: 父元素height:auto; overflow:hidden; 3: 不苛求相容性的話父級dis