• Android实现仿qq侧边栏效果


      最近从github上看到一个关于侧边栏的项目,模仿的是qq侧边栏。

      Github地址是https://github.com/SpecialCyCi/AndroidResideMenu ,这个项目是一个android studio项目,可以导入android studio中,也可以导入到Eclipse中。

      其中的ResideMenu就是写好的第三方控件,可以拿过来直接用。我们主要来看一下它是如何来运用的

    public class MenuActivity extends FragmentActivity implements View.OnClickListener{
    
        private ResideMenu resideMenu;
        private MenuActivity mContext;
        private ResideMenuItem itemHome;
        private ResideMenuItem itemProfile;
        private ResideMenuItem itemCalendar;
        private ResideMenuItem itemSettings;
    
        /**
         * Called when the activity is first created.
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mContext = this;
            setUpMenu();
            if( savedInstanceState == null )
                changeFragment(new HomeFragment());
        }
    
        private void setUpMenu() {
    
            // attach to current activity;
            resideMenu = new ResideMenu(this);
            resideMenu.setBackground(R.drawable.menu_background);
            resideMenu.attachToActivity(this);
            resideMenu.setMenuListener(menuListener);
            //valid scale factor is between 0.0f and 1.0f. leftmenu'width is 150dip. 
            resideMenu.setScaleValue(0.6f);
    
            // create menu items;
            itemHome     = new ResideMenuItem(this, R.drawable.icon_home,     "Home");
            itemProfile  = new ResideMenuItem(this, R.drawable.icon_profile,  "Profile");
            itemCalendar = new ResideMenuItem(this, R.drawable.icon_calendar, "Calendar");
            itemSettings = new ResideMenuItem(this, R.drawable.icon_settings, "Settings");
    
            itemHome.setOnClickListener(this);
            itemProfile.setOnClickListener(this);
            itemCalendar.setOnClickListener(this);
            itemSettings.setOnClickListener(this);
    
            resideMenu.addMenuItem(itemHome, ResideMenu.DIRECTION_LEFT);
            resideMenu.addMenuItem(itemProfile, ResideMenu.DIRECTION_LEFT);
            resideMenu.addMenuItem(itemCalendar, ResideMenu.DIRECTION_RIGHT);
            resideMenu.addMenuItem(itemSettings, ResideMenu.DIRECTION_RIGHT);
    
            // You can disable a direction by setting ->
            // resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);
    
            findViewById(R.id.title_bar_left_menu).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    resideMenu.openMenu(ResideMenu.DIRECTION_LEFT);
                }
            });
            findViewById(R.id.title_bar_right_menu).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    resideMenu.openMenu(ResideMenu.DIRECTION_RIGHT);
                }
            });
    }

      其中的ResideMenuItem是我们侧边栏中的选项,这里建立了四个选项,同时这个控件还具有左右侧边栏的效果,能够左右滑动。当然我们也可以设置选项在右侧边栏出现。在调用resideMenu.addMenuItem来设置在哪个侧边栏显示。

      每一个选项则可以用来显示不同的Fragment。这个开源项目还是很不错的,是一个比较流行的侧边栏样式。

      如果大家有什么问题,也欢迎大家和我交流。想要进一步了解的同学,可以点击查看源代码,亲自运行体验!

    作者:杰瑞教育
    出处:http://www.cnblogs.com/jerehedu/ 
    本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
     
  • 相关阅读:
    x+=y与x=x+y有什么区别?
    Linux下带宽流量工具iftop实践
    使用pinyin4j实现汉字转拼音
    Spring整合Velocity模版引擎
    Json工具类库之Gson实战笔记
    腾讯移动分析 签名代码示例
    Docker搭建Portainer可视化界面
    maven 打包 spring boot 生成docker 镜像
    Mysql 为什么要选择 B+Tree
    idea 添加 注释 配置
  • 原文地址:https://www.cnblogs.com/jerehedu/p/4511870.html
Copyright © 2020-2023  润新知