我是靠谱客的博主 喜悦摩托,这篇文章主要介绍【自定义View】2.Android滑动侧边栏SlidingMenu的原理,现在分享给大家,希望可以做个参考。

【难度★☆☆☆☆】Android滑动侧边栏是一个经典的布局框架,他能在有限的范围内展示更多的信息。

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
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)); } }

  接下来监听滑动事件。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部