Android移动开发之【Android实战项目】DAY3-滑动侧边栏SlidingMenu

全文纯干货

在学习这个效果之前,确保你已经知道如何实现一个滑动的View.
  接下来就是SlidingMenu的实现思路,首先我们有两个布局content和menu,content在屏幕中,menu在屏幕左侧,要实现这个,我们可以将menu使用setTranslationX()方法左移到屏幕外,然后我们监听滑动事件,根据位移来平移content和menu。
  下面是初始化的方法

public class SimpleSlidingMenu extends RelativeLayout {
    public SimpleSlidingMenu(Context context, AttributeSet attrs) {
        super(context, attrs, defStyleAttr);
        init(context);
    }

    private void init(Context context) {
        content = new FrameLayout(context);
        menu = new FrameLayout(context);
        addView(menu, new LayoutParams(MATCH_PARENT, MATCH_PARENT));
        addView(content, new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT));
    }
}

接下来监听滑动事件。

public class SimpleSlidingMenu extends RelativeLayout {
    //···
    private float lastX;
     @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                lastX = event.getRawX();
                break;
            case MotionEvent.ACTION_UP:
                scrollHelper.reset();
                break;
            case MotionEvent.ACTION_MOVE:
                float dx = event.getRawX() - lastX;
                //这里根据手指平移距离dx做平移操作
                lastX = event.getRawX();
                break;
        }
        return true;
    }
}

SimpleSlidingMenu支持三种滑动模式,同时还允许我们自定义。
其中只有content滑动最适合我目前项目哈。

所有自定义view代码都在这 https://github.com/pop1234o/CustomViewApp

没办法,本来想新建个工程在研究下DrawerLayout样式的,结果发现新建工程的模板里有个这个
真是造福全社会啊哈哈
在这里插入图片描述
在这里插入图片描述、运行了一下,果然没让我失望,啊哈哈。
在这里插入图片描述
在这里插入图片描述

发布了545 篇原创文章 · 获赞 129 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_43838785/article/details/104206727