FlycoDialog 簡(jiǎn)單實(shí)用的自定義Android彈窗對(duì)話框之PopupWindow篇

效果圖鎮(zhèn)樓


PopupWindow

在很久很久以前五萬曾經(jīng)帶給大家過一篇
FlycoDialog 簡(jiǎn)單實(shí)用的自定義Android彈窗對(duì)話框之Dialog篇
現(xiàn)在為大家續(xù)寫一下它的姊妹篇作谭,Dialog的小兄弟PopupWindow.
同樣娱颊,是基于非常棒的彈窗框架FlycoDialog實(shí)現(xiàn)的俯渤。

首先我們當(dāng)然還是要添加依賴

compile 'com.flyco.dialog:FlycoDialog_Lib:1.3.2@aar'

接下來我們還是先寫好一個(gè)彈窗的布局康谆,我們這里就以排序的彈窗布局為例。(上圖效果中的排序)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#ffffff"
    android:paddingLeft="15dp"
    android:paddingRight="15dp">

    <TextView
        android:id="@+id/pop_item_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:text="利率從高到低"
        android:textColor="#666666"
        android:textSize="15sp"/>
    <TextView
        android:id="@+id/pop_item_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:text="利率從低到高"
        android:textColor="#666666"
        android:textSize="15sp"/>
   ...
</LinearLayout>

這里我把一點(diǎn)用都沒有的分割線去掉了端盆,你們要是看著不習(xí)慣就自己加上闪幽。

接下來我們寫關(guān)于彈窗的邏輯代碼,建議像我一樣寫成內(nèi)部類谓松,有利于數(shù)據(jù)傳輸和代碼的邏輯控制星压。如果不愿意寫成內(nèi)部類在class前加public就好,在彈框中使用接口回調(diào)控制主頁相關(guān)邏輯毒返。

 class SortPopup extends BasePopup<SortPopup> implements View.OnClickListener {
        private TextView item1;
        private TextView item2;
       ...

        public SortPopup(Context context) {
            super(context);
        }

        @Override
        public View onCreatePopupView() {
            View inflate = View.inflate(mContext, R.layout.popup_sort, null);
            //在這里我們對(duì)彈窗中的控件進(jìn)行初始化
            item1 = (TextView) inflate.findViewById(R.id.pop_item_1);
            item2 = (TextView) inflate.findViewById(R.id.pop_item_2);
            ...
            return inflate;
        }

        @Override
        public void setUiBeforShow() {
        //為他們?cè)O(shè)置監(jiān)聽
            item1.setOnClickListener(this);
            item2.setOnClickListener(this);
            ...
        }
        
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.pop_item_1:
             //觸發(fā)第一個(gè)控件的監(jiān)聽要處理的內(nèi)容(效果圖中利率從高到低的那個(gè)按鈕)租幕。
                    dismiss();//關(guān)閉彈框
                    break;
                case R.id.pop_item_2:
             //觸發(fā)第二個(gè)控件的監(jiān)聽要處理的內(nèi)容。      
                    dismiss();
                    break;
                ...
                default:
                    break;
            }
        }
    }

然后我們來實(shí)現(xiàn)啟動(dòng)彈框的代碼

sortPopup.alignCenter(true)
              .anchorView(sort_tv)//彈框從哪個(gè)控件里彈出拧簸,(這里的sort_tv是效果圖中顯示排序的TextView)
              .gravity(Gravity.BOTTOM)//彈框從控件的哪里彈出劲绪。這里設(shè)置的是底部
              .showAnim(new SlideTopEnter())//選擇彈出動(dòng)畫
              .dismissAnim(new SlideTopExit())//選擇消失動(dòng)畫
              .offset(0, 0)//設(shè)置彈窗的偏移量,這個(gè)你們不用管盆赤。
              .dimEnabled(false)//彈窗是否具有強(qiáng)制性(點(diǎn)其他位置會(huì)不會(huì)消失贾富,false是無強(qiáng)制性,會(huì)消失)
              .show();//展示彈窗

如果還有什么不明白的地方可在博客下留言牺六。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末颤枪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子淑际,更是在濱河造成了極大的恐慌畏纲,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件春缕,死亡現(xiàn)場(chǎng)離奇詭異盗胀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锄贼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門票灰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宅荤,你說我怎么就攤上這事屑迂。” “怎么了冯键?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵惹盼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我琼了,道長(zhǎng)逻锐,這世上最難降的妖魔是什么夫晌? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮昧诱,結(jié)果婚禮上晓淀,老公的妹妹穿的比我還像新娘。我一直安慰自己盏档,他們只是感情好凶掰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蜈亩,像睡著了一般懦窘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稚配,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天畅涂,我揣著相機(jī)與錄音,去河邊找鬼道川。 笑死午衰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冒萄。 我是一名探鬼主播臊岸,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼尊流!你這毒婦竟也來了帅戒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤崖技,失蹤者是張志新(化名)和其女友劉穎逻住,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迎献,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鄙信,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了忿晕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡银受,死狀恐怖践盼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宾巍,我是刑警寧澤咕幻,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站顶霞,受9級(jí)特大地震影響肄程,放射性物質(zhì)發(fā)生泄漏锣吼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一蓝厌、第九天 我趴在偏房一處隱蔽的房頂上張望玄叠。 院中可真熱鬧,春花似錦拓提、人聲如沸读恃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寺惫。三九已至,卻和暖如春蹦疑,著一層夾襖步出監(jiān)牢的瞬間西雀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工歉摧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艇肴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓判莉,卻偏偏與公主長(zhǎng)得像豆挽,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子券盅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,077評(píng)論 25 707
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程帮哈,因...
    小菜c閱讀 6,401評(píng)論 0 17
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 46,755評(píng)論 22 665
  • 本文主要是依照一些實(shí)際的開發(fā)經(jīng)驗(yàn),然后锰镀,總結(jié)一些是些安卓底部彈窗的一些實(shí)現(xiàn)的方法與思路娘侍,希望可以給你帶來一些參考,...
    霧里看花六月天閱讀 17,514評(píng)論 0 22
  • 十五歲的天空仿佛并沒有為此平添什么色彩泳炉。偏偏十五歲的我們卻在書寫著平凡而又獨(dú)特的似水年華憾筏。我們執(zhí)著著,卻...
    如果風(fēng)VAE妳還在閱讀 226評(píng)論 0 0