zoukankan      html  css  js  c++  java
  • Android SlidingMenu 滑出侧边栏

      最近有个项目需要使用侧边栏,而且希望是左右两侧都能够滑出侧边菜单,在网上查找实现方式时,发现大家用的最多的还是大神jfeinstein10的SlidingMenu库,地址https://github.com/jfeinstein10/SlidingMenu,通过将开源库导入eclipse,并把它作为library引入自己的工程,经过配置就可以实现SlidingMenu的效果,网上有很多例子,大家可以下一个研究研究,初学者可以直接在例子上修改,开发自己的应用,当然这样不够严谨。

      这次开发并没有采用上面的方式,而是将SlidingMenu开源库作为架包,通过引入jar包来开发项目,这样可以将滑动布局以控件的形式体现出来,使用时比较简单。本次开发参考的代码为http://download.csdn.net/download/woaixinxin123/5883503

     

    MainActivity.java

    package com.example.slidingmenudemo;
    
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.util.DisplayMetrics;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.RelativeLayout;
    import android.widget.RelativeLayout.LayoutParams;
    
    import com.slidingmenu.lib.SlidingMenu;  //引用的SlidigMenu包
    
    public class LeftAndRightActivity extends FragmentActivity  {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            initView();
        }
    
        private void initView() {
            
            final SlidingMenu menu = new SlidingMenu(this);
            Button button = new Button(this);
            button.setText("left");
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    menu.showMenu();
                }
            });
    
            Button button2 = new Button(this);
            button2.setText("right");
            button2.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    menu.showSecondaryMenu();
                }
            });
            
            RelativeLayout view = new RelativeLayout(this);
            LayoutParams llp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            llp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
            view.addView(button, llp);
            LayoutParams rlp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
            view.addView(button2, rlp);
            setContentView(view);
            
            DisplayMetrics metric = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(metric);
            int width = metric.widthPixels; 
            int height = metric.heightPixels; 
    
            menu.setMode(SlidingMenu.LEFT_RIGHT);
            menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
            menu.setShadowWidthRes(R.dimen.shadow_width);
            menu.setShadowDrawable(R.drawable.shadow);
            menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
            menu.setBehindWidth(width*2/3);
            menu.setFadeDegree(0.35f);
            menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
            menu.setMenu(R.layout.left_menu_frame);
            menu.setShadowDrawable(R.drawable.shadow);
            getSupportFragmentManager().beginTransaction().replace(R.id.left_menu_frame, new NavigationFragment()).commit();   //左侧菜单界面由NavigationFragment确定
            menu.setSecondaryMenu(R.layout.right_menu_frame);
            menu.setSecondaryShadowDrawable(R.drawable.shadow);
            //左右两侧滑出菜单样式可以通过自己写的Fragment定制,在此不再赘述
        }
    
    }

     

  • 相关阅读:
    日志管理工具logrotate
    springboot2整合logback.xml动态修改日志打印级别
    mybatis框架之装饰模式
    mybatis源码分析之06二级缓存
    后勤信息反馈---场景描述
    《人月神话》读后感---计算机产品的文档
    android studio 使用第三方模拟器连接方法
    第八周总结
    Android Studio 和 SDK 下载、安装和环境变量配置
    求最大子数组并单步显示
  • 原文地址:https://www.cnblogs.com/fansen/p/4849181.html
Copyright © 2011-2022 走看看