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

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

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

具體的實現就很少說了,以爲有意思的話能夠下來看看。下面說一下使用方法吧:git

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

二、佈局文件中添加:ide

<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>

三、添加導航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);

四、添加導航對應的item操做頁面this

 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);
        

 

上面介紹的是內置的樣式,下面說說如何拓展本身的樣式spa

一、自定義導航菜單的item,在本身的實現類中繼承INavBarItemView並實現裏面的全部方法,具體能夠參考MDNavBarItemTitleView.javacode

二、自定義導航菜單對應的操做界面,在本身的實現類中繼承INavBarPopupView並實現裏面的全部方法,具體能夠參考MDNavBarPopupSortView.javablog

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

效果圖:

相關文章
相關標籤/搜索