Android編程實(shí)現(xiàn)popupwindow定時(shí)消失的方法
本文實(shí)例講述了Android編程實(shí)現(xiàn)popupwindow定時(shí)消失的方法。分享給大家供大家參考,具體如下:
因?yàn)槭窃谄渌缑鎻棾龅膒opupwindow,要在橫屏切換回豎屏的時(shí)候,讓popupwindow自動(dòng)消失,因?yàn)閺棾鰌opupwindow是普通的類,沒有監(jiān)聽橫豎屏的函數(shù),所以想到了使用定時(shí)器,定時(shí)3秒之后如果用戶沒有操作就讓popupwindow消失,代碼如下:
// 創(chuàng)建彈出窗口
popupMenu = new PopupWindow(view, sourceView.getWidth() * 2,
LayoutParams.WRAP_CONTENT + 200);
ColorDrawable cd = new ColorDrawable(R.color.white);
popupMenu.setBackgroundDrawable(cd);
popupMenu.update();
popupMenu.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
popupMenu.setTouchable(true); // 設(shè)置popupwindow可點(diǎn)擊
popupMenu.setOutsideTouchable(true); // 設(shè)置popupwindow外部可點(diǎn)擊
popupMenu.setFocusable(true); // 獲取焦點(diǎn)
ColorDrawable dw = new ColorDrawable(0x00);
popupMenu.setBackgroundDrawable(dw);
popupMenu.setTouchInterceptor(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
popupMenu.dismiss();
return true;
}
timer.start();
return false;
}
});
}
CountDownTimer timer = new CountDownTimer(3000, 10) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
popupMenu.dismiss();
}
};
@Override
public PopupWindow createPupupWindow() {
return popupMenu;
}
@Override
public void showPopupMenu() {
if (popupMenu != null && popupMenu.isShowing()) {
popupMenu.dismiss();
} else {
popupMenu.showAsDropDown(sourceView, -sourceView.getWidth() / 2, 0);
timer.start();
}
}
關(guān)鍵點(diǎn)是使用CountDownTimer類,來進(jìn)行定時(shí),已經(jīng)全部封裝好了,不要去考慮子線程無法去改變UI界面的問題,還是非常好用的。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android窗口相關(guān)操作技巧總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- 詳解Android中PopupWindow在7.0后適配的解決
- Android自定義PopupWindow實(shí)現(xiàn)炫酷的IOS對(duì)話框效果
- 詳解Android PopupWindow怎么合理控制彈出位置(showAtLocation)
- Android開發(fā)實(shí)現(xiàn)popupWindow彈出窗口自定義布局與位置控制方法
- Android UI設(shè)計(jì)與開發(fā)之PopupWindow仿騰訊新聞底部彈出菜單
- Android Popupwindow彈出窗口的簡(jiǎn)單使用方法
- Android實(shí)現(xiàn)底部半透明彈出框PopUpWindow效果
- Android中使用PopupWindow 仿微信點(diǎn)贊和評(píng)論彈出
- Android中的popupwindow進(jìn)入和退出的動(dòng)畫效果
- Android 使用PopupWindow實(shí)現(xiàn)彈出更多的菜單實(shí)例詳解
- Android開發(fā)解決popupWindow重疊報(bào)錯(cuò)問題
相關(guān)文章
Android checkbox的listView(多選,全選,反選)具體實(shí)現(xiàn)方法
由于listview的一些特性,剛開始寫這種需求的功能的時(shí)候都會(huì)碰到一些問題,重點(diǎn)就是存儲(chǔ)每個(gè)checkbox的狀態(tài)值,在這里分享出了完美解決方法:2013-06-06
Android仿QQ分組實(shí)現(xiàn)二級(jí)菜單展示
這篇文章主要為大家詳細(xì)介紹了Android仿QQ分組實(shí)現(xiàn)二級(jí)菜單展示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
Android關(guān)于獲取時(shí)間的記錄(小結(jié))
這篇文章主要介紹了Android關(guān)于獲取時(shí)間的記錄(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Android編程獲取系統(tǒng)隱藏服務(wù)實(shí)現(xiàn)鎖屏的方法
這篇文章主要介紹了Android編程獲取系統(tǒng)隱藏服務(wù)實(shí)現(xiàn)鎖屏的方法,涉及Android關(guān)于廣播,服務(wù),權(quán)限及鎖屏等操作的相關(guān)技巧,需要的朋友可以參考下2015-12-12
Android design包自定義tablayout的底部導(dǎo)航欄的實(shí)現(xiàn)方法
這篇文章主要介紹了Android design包自定義tablayout的底部導(dǎo)航欄的實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-01-01
Android自定義Spinner下拉列表(使用ArrayAdapter和自定義Adapter實(shí)現(xiàn))
這篇文章主要介紹了Android自定義Spinner下拉列表(使用ArrayAdapter和自定義Adapter實(shí)現(xiàn))的相關(guān)資料,需要的朋友可以參考下2015-10-10
Android組件Activity的啟動(dòng)過程深入分析
這篇文章主要介紹了Android組件Activity的啟動(dòng)過程,Activity作為Android四大組件之一,他的啟動(dòng)沒有那么簡(jiǎn)單。這里涉及到了系統(tǒng)服務(wù)進(jìn)程,啟動(dòng)過程細(xì)節(jié)很多,這里我只展示主體流程。activity的啟動(dòng)流程隨著版本的更替,代碼細(xì)節(jié)一直在進(jìn)行更改,每次都會(huì)有很大的修改2023-04-04

