Android仿IOS底部Dialog

前言

最近接到一個需求要實現(xiàn)一個類IOS的底部dialog,當(dāng)時我就要日了狗了,項目上都固定了使用的是Android原生dialog,現(xiàn)在變成IOS的,得改多少代碼。。不過既然人家提了,該實現(xiàn)還是要實現(xiàn)的對吧??!先上個圖:


Sample.gif

實現(xiàn)方式

  1. 直接修改Android底層的dialog,加上宏控或者其他的標志位。當(dāng)然作為一家手機ODM公司,這點還是可以做到的,但是沒有公用性了。。
  2. 重新實現(xiàn)Dialog,我實現(xiàn)的AlerDialog,一是因為Google推薦使用,二是如果使用的是 DialogFragment也可以通過onCreateDialog的方式來重寫

實現(xiàn)步驟

其實不想寫這一步的,因為實現(xiàn)實在是太簡單了一點,只不過要花一定的時間去做。。

  1. 截取Builder的方法,因為AlertDialog是通過Builder模式建立的,所以把一些Builder的方法改成自己的需求就行了
  2. 建立自己的底部的布局,我建立的是豎型LinearLayout
  3. 設(shè)置屬性,其實設(shè)置自己需求的屬性就可以了
  4. 創(chuàng)建Dialog,把布局設(shè)置進去,就大功告成了

使用方式

compile 'com.android.actionsheetdialog:actionsheet:1.0.3'
                ActionSheetDialog dialog = new ActionSheetDialog.ActionSheetBuilder(MainActivity.this, R.style.ActionSheetDialogBase_SampleStyle)
                        .setItems(new CharSequence[]{"Item1", "Item2", "Item3"}, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(MainActivity.this, "onClick Item: " + which, Toast.LENGTH_SHORT).show();
                            }
                        })
                        .setMessage("************")
                        .setTitle("電話號碼")
                        .setPositiveButton("確定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(MainActivity.this, "onClick() dialog", Toast.LENGTH_SHORT).show();
                            }
                        })
                        .setCancelable(true)
                        .create();
                dialog.show();

源碼

完整的源碼在GitHub
這里就不詳細介紹了,稍微有點多,有問題可以提issue

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

相關(guān)閱讀更多精彩內(nèi)容

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