底部菜單彈出按鈕,純Dialog自定義菜單欄,打造最簡單的動畫效果

最近項目用到了底部滑出按鈕,拿到需求的時候想了一下實現(xiàn)的方法,發(fā)現(xiàn)github有一些庫用到了此類菜單,雖然說效果很好,但是不想引入過多的庫,所以用原生代碼寫了一個簡單的實現(xiàn),本人小菜鳥,大佬們覺得不好請勿噴,咱們下面就開始一步步實現(xiàn)過程吧。。


1,實現(xiàn)此類需求,我們要想一想怎么去設計才是最簡單的方法,做到心中有模型,手中有代碼肯定使我們的成功提高一半呀,首先我們知道這個底部按鈕彈出,無非簡單textView做一個排列,為了我們的效果更佳的美觀,我們可以調(diào)用shape或者style來設計我們認為最優(yōu)秀的風格,話不多說,我們先來看一下我們的代碼。

1.1 dialog布局,這里我們用最簡單的布局格式

可以看到我們這邊調(diào)用了background屬性,而我們的這個屬性里面引用了我們的drawable下面的也就是我們說的shape,來調(diào)節(jié)我們dialog布局的圓角,這樣就使我們的彈窗更加的立體感有木有,下面我們看這個shape,很簡單,就是一個屬性設置,這個我們不用過多的講

? ?現(xiàn)在基本條件都已經(jīng)具備了,那么我們該怎么實現(xiàn)我們的方式呢,下面開始擼碼。


? ?看到上面,我們很輕松的就能看到我們引用了LayoutInflater這個局部引入類,不得不說這個類在android中真的是非常的強大,例如我們自定義view的時候都會用到,想知道這個類的同學可以自行百度一下,這里我們要簡單了解幾個屬性,Window dialogWindow =dialog.getWindow();這個里面我們是獲取當前Activity的窗體,從而去顯示我們的view,然后我們調(diào)用dialogWindow下面的setGravity方法設置我們的dialog從底部彈出, 然后再調(diào)用我們的WindowManager.LayoutParams這個屬性獲得窗口的屬性,設置我們的寬度等等然后賦給我們窗口,可能這邊有點繞,但是無非就是獲取窗口,設置屬性,賦給窗口,這時候我們就可以設置我們的dialog.show了,當然在我們調(diào)用的時候我們要綁定點擊事件或者我們可以引用butterknife去優(yōu)化我們的代碼,是不是很簡單的就實現(xiàn)了我們的需求,而且完全不用去引用我們的第三方庫,其實實現(xiàn)的方式有很多種,我只是選擇了我所了解的方式去實現(xiàn),后期將會為大家?guī)砀嘧约旱南敕ǎx謝啦

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容