Android仿QQ長(zhǎng)按刪除彈出框功能示例
廢話不說,先看一下效果圖,如果大家感覺不錯(cuò),請(qǐng)參考實(shí)現(xiàn)代碼:
對(duì)于列表來(lái)說,如果想操作某個(gè)列表項(xiàng),一般會(huì)采用長(zhǎng)按彈出菜單的形式,默認(rèn)的上下文菜單比較難看,而QQ的上下文菜單就人性化多了,整個(gè)菜單給用戶一種氣泡彈出的感覺,而且會(huì)顯示在手指按下的位置,而技術(shù)實(shí)現(xiàn)我之前是使用popupWindow和RecyclerView實(shí)現(xiàn)的,上面一個(gè)RecyclerView,下面一個(gè)小箭頭ImageView,但后來(lái)發(fā)現(xiàn)沒有必要,而且可定制化也不高,還是使用多個(gè)TextView更好一點(diǎn)。
我封裝了一下,只需要一個(gè)PopupList.Java文件。源碼放在了Git上,git地址:
https://github.com/shangmingchao/PopupList
使用方式,很簡(jiǎn)單:
只需要調(diào)用該方法即可完成綁定:
PopupList popupList = new PopupList(); popupList.init(context, view, popupMenuItemList, OnPopupListClickListener);
例子:
lv_main = (ListView) findViewById(R.id.lv_main); mDataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, mDataList); lv_main.setAdapter(mDataAdapter); popupMenuItemList.add(getString(R.string.copy)); popupMenuItemList.add(getString(R.string.delete)); popupMenuItemList.add(getString(R.string.share)); popupMenuItemList.add(getString(R.string.more)); PopupList popupList = new PopupList(); popupList.init(this, lv_main, popupMenuItemList, new PopupList.OnPopupListClickListener() { @Override public void onPopupListClick(View contextView, int contextPosition, int position) { Toast.makeText(MainActivity.this, contextPosition + "," + position, Toast.LENGTH_LONG).show(); } }); ImageView indicator = new ImageView(this); indicator.setImageResource(R.drawable.popuplist_default_arrow); popupList.setIndicatorView(indicator); popupList.setIndicatorSize(dp2px(16), dp2px(8));
以上所述是小編給大家介紹的Android仿QQ長(zhǎng)按刪除彈出框功能示例,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android中搜索圖標(biāo)和文字居中的EditText實(shí)例
本篇文章主要介紹了Android中搜索圖標(biāo)和文字居中的EditText實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-06-06Android Studio 3.x版本 的輸入法遇到的坑及解決方案
前些天把AndroidStudio從2.3.3升級(jí)到3.0,遇到了不少坑,其中一個(gè)巨坑就是輸入中文不提示的問題,下面給大家分享Android Studio 3.x版本的輸入法遇到的坑及解決方案,一起看看吧2017-11-11Android網(wǎng)絡(luò)編程之UDP通信模型實(shí)例
這篇文章主要介紹了Android網(wǎng)絡(luò)編程之UDP通信模型實(shí)例,本文給出了服務(wù)端代碼和客戶端代碼,需要的朋友可以參考下2014-10-10anndroid使用ViewPager實(shí)現(xiàn)三個(gè)fragment切換
這篇文章主要介紹了anndroid使用ViewPager實(shí)現(xiàn)三個(gè)fragment切換,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-04-04Android Studio使用Kotlin時(shí),修改代碼后運(yùn)行不生效的解決方法
這篇文章主要介紹了Android Studio使用Kotlin時(shí),修改代碼后運(yùn)行不生效的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-03-03Android開源AndroidSideMenu實(shí)現(xiàn)抽屜和側(cè)滑菜單
這篇文章主要為大家詳細(xì)介紹了Android開源AndroidSideMenu實(shí)現(xiàn)抽屜和側(cè)滑菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02android里TextView加下劃線的幾種方法總結(jié)
下面小編就為大家?guī)?lái)一篇android里TextView加下劃線的幾種方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-10-10Android完美實(shí)現(xiàn)平滑過渡的ViewPager廣告條
這篇文章主要為大家詳細(xì)介紹了Android完美實(shí)現(xiàn)平滑過渡的ViewPager廣告條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Android學(xué)習(xí)之Flux架構(gòu)入門
Flux是Facebook在14年提出的一種Web前端架構(gòu),主要用來(lái)處理復(fù)雜的UI邏輯的一致性問題(當(dāng)時(shí)是為了解決Web頁(yè)面的消息通知問題)。接下來(lái)從其特點(diǎn)和使用上來(lái)介紹Flux架構(gòu)。本文主要目的是讓你對(duì)Flux的一個(gè)架構(gòu)大體面貌有個(gè)了解。2016-08-08Android高級(jí)開發(fā)之性能優(yōu)化典范
本文從電量,視圖,內(nèi)存三個(gè)性能方面的知識(shí)點(diǎn)給大家介紹android高級(jí)開發(fā)之性能優(yōu)化的相關(guān)知識(shí),希望對(duì)大家有所幫助2016-05-05