功能強大,UI簡潔,交互優雅的通用彈窗!能夠替代Dialog,PopupWindow,PopupMenu,BottomSheet等組件,自帶十幾種效果良好的動畫, 支持徹底的UI和動畫自定義!java
編寫本庫的初衷有如下幾點:git
設計思路:github
綜合常見的彈窗場景,我將其分爲3類:ide
動畫設計:svg
爲了增長交互的趣味性,遵循Material Design,在設計動畫的時候考慮了不少細節,過渡,層級的變化。具體能夠從Demo中感覺。動畫
implementation 'com.lxj:xpopup:latest release'
複製代碼
爲了方便使用,已經內置了幾種常見彈窗的實現:spa
顯示確認和取消對話框設計
XPopup.get(getContext()).asConfirm("我是標題", "我是內容",
new OnConfirmListener() {
@Override
public void onConfirm() {
toast("click confirm");
}
})
.show();
複製代碼
顯示帶輸入框的確認和取消對話框3d
XPopup.get(getContext()).asInputConfirm("我是標題", "請輸入內容。",
new OnInputConfirmListener() {
@Override
public void onConfirm(String text) {
toast("input text: " + text);
}
})
.show();
複製代碼
顯示中間彈出的列表彈窗code
XPopup.get(getActivity()).asCenterList("請選擇一項",new String[]{"條目1", "條目2", "條目3", "條目4"},
new OnSelectListener() {
@Override
public void onSelect(int position, String text) {
toast("click "+text);
}
})
.show();
複製代碼
顯示中間彈出的加載框
XPopup.get(getActivity()).asLoading().show();
複製代碼
顯示從底部彈出的列表彈窗
XPopup.get(getActivity()).asBottomList("請選擇一項",new String[]{"條目1", "條目2", "條目3", "條目4","條目5"},
new OnSelectListener() {
@Override
public void onSelect(int position, String text) {
toast("click "+text);
}
})
.show();
複製代碼
顯示依附於某個View的彈窗
XPopup.get(getActivity()).asAttachList(new String[]{"分享", "編輯", "不帶icon"},
new int[]{R.mipmap.ic_launcher, R.mipmap.ic_launcher},
new OnSelectListener() {
@Override
public void onSelect(int position, String text) {
toast("click "+text);
}
})
.atView(v) // 依附於所點擊的View,必須設置
.show();
複製代碼
關閉彈窗
XPopup.get(getContext()).dismiss();
複製代碼
更多更多的使用方式,請查看Github Readme 說明。
Github:github.com/li-xiaojun/…
QQ:16167479
這個庫是剛剛發佈,我很須要您的建議或者想法,請不要吝嗇你的需求,狠狠地在Github提issue吧。