以前曾經介紹過《android提高第十九篇之"多方向"抽屜》,當這個抽屜元件不與周圍元件發生壓擠的情況下(周圍元件布局不變),是比較好使的,但是如果需要對周圍元件擠壓,則用起來欠缺美觀了。
如下圖。在對周圍壓擠的情況下,抽屜是先把周圍的元件一次性壓擠,再通過動畫效果展開/收縮的,這種做法的好處是快速簡單,壞處是如果擠壓範圍過大,則效果生硬。
本文實現的自定義抽屜元件,主要針對這種壓擠效果做出改良,漸進式壓擠周圍元件,使得過渡效果更加美觀。如下圖。
1.抽屜元件主要在螢幕不可視區域,手柄在螢幕邊緣的可視區域。即 抽屜.rightmargin=-*** + 手柄.width
2.指定乙個周圍元件為可壓擠,即layoutparams.weight=1;當然使用者也可以指定多個view.
3.使用asynctask來實現彈出/收縮的動畫,彈出:抽屜.rightmargin+=xx,收縮:抽屜.rightmargin-=xx
總結,本文的自定義抽屜雖然對壓擠周圍元件有過渡效果,但是比較耗資源,讀者可以針對不同的情況考慮使用。
本文的原始碼可以到
main.xml的原始碼:
以前曾經介紹過《android提高第十九篇之"多方向"抽屜》,當這個抽屜元件不與周圍元件發生壓擠的情況下(周圍元件布局不變),是比較好使的,但是如果需要對周圍元件擠壓,則用起來欠缺美觀了。
如下圖。在對周圍壓擠的情況下,抽屜是先把周圍的元件一次性壓擠,再通過動畫效果展開/收縮的,這種做法的好處是快速簡單,壞處是如果擠壓範圍過大,則效果生硬。
本文實現的自定義抽屜元件,主要針對這種壓擠效果做出改良,漸進式壓擠周圍元件,使得過渡效果更加美觀。如下圖。
1.抽屜元件主要在螢幕不可視區域,手柄在螢幕邊緣的可視區域。即 抽屜.rightmargin=-*** + 手柄.width
2.指定乙個周圍元件為可壓擠,即layoutparams.weight=1;當然使用者也可以指定多個view.
3.使用asynctask來實現彈出/收縮的動畫,彈出:抽屜.rightmargin+=xx,收縮:抽屜.rightmargin-=xx
總結,本文的自定義抽屜雖然對壓擠周圍元件有過渡效果,但是比較耗資源,讀者可以針對不同的情況考慮使用。
本文的原始碼可以到
main.xml的原始碼:
Android 動態布局
android 動態布局 絕對布局 absolutelayout abslayout new absolutelayout this setcontentview abslayout button btn1 new button this btn1.settext this is a button ...
Android動態改變布局
遇到這麼個需求,先看圖 其實是乙個軟體的登入介面,初始是第乙個圖的樣子,當軟鍵盤彈出後變為第二個圖的樣子,因為登入介面有使用者名稱 密碼 登入按鈕,不這樣的話軟鍵盤彈出後會遮住登入按鈕 其實之前的實現放到了scrollview裡面,監聽軟鍵盤彈出後滾動到底部,軟鍵盤隱藏後滾動到頂部,也是可以的 最簡...
Android動態改變布局
遇到這麼個需求,先看圖 其實是乙個軟體的登入介面,初始是第乙個圖的樣子,當軟鍵盤彈出後變為第二個圖的樣子,因為登入介面有使用者名稱 密碼 登入按鈕,不這樣的話軟鍵盤彈出後會遮住登入按鈕 其實之前的實現放到了scrollview裡面,監聽軟鍵盤彈出後滾動到底部,軟鍵盤隱藏後滾動到頂部,也是可以的 最簡...