zoukankan      html  css  js  c++  java
  • Android开源--MenuDrawer

    开放的源地址:https://github.com/SimonVT/android-menudrawer

    简单介绍:menudrawer是跟sliderMenu差点儿相同的一种框架,常被应用做设置界面,以menu作为设置菜单,contentView作为具体页面的框架,例如以下图



    API具体解释:

    ****************************左边MenuDrawer***************************************
    1.设置主页
    menuDrawer=MenuDrawer.attach(this,MenuDrawer.MENU_DRAG_CONTENT);
    menuDrawer.setContentView(R.layout.activity_main);
    2.设置Menu页/高度
    menuDrawer.setMenuView(mListView);
    menuDrawer.setMenuSize(getWindowManager().getDefaultDisplay().getWidth());
    3.主/Menu页相互跳转
    menuDrawer.toggleMenu();
    4.关闭Menu页
    menuDrawer.closeMenu();


    5.右边标示的保存和滑动:
    getView(设置Tag):  v.setTag(R.id.mdActiveViewPosition, position);
    OnItemClickListener(设置当前活跃Item):menuDrawer.setActiveView(v,position);


    6.滑动时(刷新指示标示)
    mListView.setOnScrollListener(new OnScrollListener() {

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
    }

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,
    int visibleItemCount, int totalItemCount) {
    menuDrawer.invalidate();
    }
    });


    7.设置拖动有效的区域
    menuDrawer.setTouchMode(MenuDrawer.TOUCH_MODE_FULLSCREEN);


    8.第4个參数推断是否能被拖动
    menuDrawer=MenuDrawer.attach(this,MenuDrawer.MENU_DRAG_CONTENT,Position.RIGHT,true);


    ****************************右/上下边MenuDrawer***************************************
    1.设置主页(第3个參数提供了菜单的4个方向)
    menuDrawer=MenuDrawer.attach(this,MenuDrawer.MENU_DRAG_CONTENT, Position.RIGHT);
    2.改动指示器的位置:
    1)在AndroidManifest.xml中改动样式
    android:theme="@style/SampleTheme.Right"
    2)在theme.xml中改动:
    <style name="SampleBase" parent="@android:style/Theme.Holo.Light" />


    <style name="SampleTheme.Right" parent="SampleBase">
       <item name="menuDrawerStyle">@style/MenuDrawerStyle.Right</item>
    </style>
    3)在style.xml中改动:
    <style name="MenuDrawerStyle.Right" parent="Widget.MenuDrawer">
            <item name="mdActiveIndicator">@drawable/menu_arrow_right</item>
            <item name="mdMenuSize">200dp</item>
    </style>


    ****************************自己定义MenuDrawer***************************************
    XML:
    View层必须是net.simonvt.menudrawer.TopDrawer四种中的一种定义
    menu页的id必须为android:id="@id/mdMenu"
    主页的id必须是android:id="@id/mdContent"
    代码:设置手动模式并设置menu宽/高
    menuDrawer.setTouchMode(MenuDrawer.TOUCH_MODE_FULLSCREEN);
    menuDrawer.setMenuSize(50);
    定义指示位置:(指示标的显示得由manifest文件中面的theme指定)menuDrawer.setActiveView(v);


    ****************************MenuDrawer+ViewPager***************************************
    Tip:1)主页实现FragmentActivity;
    2)在onPageChangeListener中onPageSelected实现:
    menuDrawer.setTouchMode(position==0?MenuDrawer.TOUCH_MODE_FULLSCREEN:MenuDrawer.TOUCH_MODE_NONE);



    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    041.PGSQL-pgsql常用命令-查看日志文件大小、数据目录、运行日志相关配置、当前lsn
    041.PGSQL-pgsql时间日期错误问题,原来是系统时间问题,使用远程的NTP时间服务器来提供时间的话,需要使用timedatectl设置将NTP时间同步开启。
    040.PGSQL-备份和恢复-增量备份-创建基础备份
    039.PGSQL-备份和恢复-增量备份-开启wal归档、并设置定时清理备份之后的wal文件
    037.PGSQL-事务 savepoint 保存点、rollback to 回滚
    硬件黑客之无线电安全 --- Proxmark3 RDV4 套件
    我有一个想法。。。
    硬件嘿客之嘿客仓库
    WPA GPU基准测试
    什么是家用路由器,带你重新认识一下
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4736785.html
Copyright © 2011-2022 走看看