可動態布局的Android抽屜之基礎

2021-09-19 13:05:08 字數 1255 閱讀 5249

以前曾經介紹過《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裡面,監聽軟鍵盤彈出後滾動到底部,軟鍵盤隱藏後滾動到頂部,也是可以的 最簡...