概述
【难度★☆☆☆☆】Android滑动侧边栏是一个经典的布局框架,他能在有限的范围内展示更多的信息。
在学习这个效果之前,确保你已经知道如何实现一个滑动的View,可以参考这篇文章【自定义View】1.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和menu一起滑动的
这个只有content滑动
这个有缩放效果,和酷狗音乐的那个差不多。
我的所有自定义view代码都在这 https://github.com/pop1234o/CustomViewApp,欢迎star。
最后
以上就是喜悦摩托为你收集整理的【自定义View】2.Android滑动侧边栏SlidingMenu的原理的全部内容,希望文章能够帮你解决【自定义View】2.Android滑动侧边栏SlidingMenu的原理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复