MDNavBarView下拉導航菜單(仿美團導航下拉菜單)


說到下拉導航菜單這個東西用得還真不少,細心算一下做開發以來這樣的菜單已經寫了第三次了,但基本都是不能復用。感覺特累人。
不經意看到同事寫一個類似的下拉菜單,但他引用了開源庫仿大眾菜單的庫,大致看了一下,感覺挺不錯的,復用性也比較好,但要

是換成別的樣式就要去修改代碼了,感覺這有點不方便也比較容易出錯。於是參照他的大致思路寫了一個仿下拉菜單。

具體的實現就不多說了,覺得有意思的話可以下來看看。下面說一下使用方法吧:

1、添加navbarview包下的代碼與對應資源

2、布局文件中添加:

<com.mr_mo.mdnavbarview.navbarview.MDNavBarView
        android:id="@+id/mdNavBarView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    </com.mr_mo.mdnavbarview.navbarview.MDNavBarView>

3、添加導航item:

INavBarItemView itemViewAdress = new MDNavBarItemTitleView(this);
        itemViewAdress.setTitle("地區");
//        itemViewAdress.setTitleColorSelect(Color.RED);

        INavBarItemView itemViewTime = new MDNavBarItemTitleView(this);
        itemViewTime.setTitle("時間段");
//        itemViewTime.setTitleColorSelect(Color.RED);

        INavBarItemView itemViewFilter = new MDNavBarItemTitleView(this);
        itemViewFilter.setTitle("篩選");
//        itemViewFilter.setTitleColorSelect(Color.RED);

        List list = new ArrayList();
        list.add(itemViewAdress);
        list.add(itemViewTime);
        list.add(itemViewFilter);

        mdNavBarView.setNavBarItemView(list);
        mdNavBarView.setNavBarViewBGColor(Color.WHITE);

4、添加導航對應的item操作頁面

 MDNavBarPopupSortView sortView1 = new MDNavBarPopupSortView(this);
        sortView1.setBackgroundColor(Color.YELLOW);
        sortView1.setNavBarPopupViewHeight(210);//設置下拉菜單的高度
        sortView1.setOnNavBarPopupSelectListener(new NavBarPopupSelectListener() {
            @Override
            public void onSelect(View view, int index, Object itemData) {
                mdNavBarView.hide();
                mdNavBarView.isShowNavBarItemIcon(false, index);
                NavBarSortModel model = (NavBarSortModel) itemData;
                mdNavBarView.setNavBarItemTitle(model.getTitle(), index);//更新導航標題
            }
        });

        List listOperateView = new ArrayList();
        listOperateView.add(sortView);
        listOperateView.add(sortView1);
        listOperateView.add(sortView2);
        mdNavBarView.setNavBarPopupOperateView(listOperateView);
        

 

上面介紹的是內置的樣式,下面說說如何拓展自己的樣式

1、自定義導航菜單的item,在自己的實現類中繼承INavBarItemView並實現里面的所有方法,具體可以參考MDNavBarItemTitleView.java

2、自定義導航菜單對應的操作界面,在自己的實現類中繼承INavBarPopupView並實現里面的所有方法,具體可以參考MDNavBarPopupSortView.java

有興趣的朋友下載來看看:https://github.com/MrxMo/MDNavBarView

效果圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM