DrawerLayout设置滑动边距
来源:互联网 发布:淘宝新开店铺采集器 编辑:程序博客网 时间:2024/04/20 10:18
////////////////////////2016/10/26/////////////////////
////////////////////////by xbw////////////////////////
android.support.v4.widget.DrawerLayout制作的侧滑抽屉
public static void setDrawerLeftEdgeSize(Activity activity, DrawerLayout drawerLayout, float displayWidthPercentage) { if (activity == null || drawerLayout == null) return; try { Field leftDraggerField = drawerLayout.getClass().getDeclaredField("mLeftDragger"); leftDraggerField.setAccessible(true); ViewDragHelper leftDragger = (ViewDragHelper) leftDraggerField.get(drawerLayout); Field edgeSizeField = leftDragger.getClass().getDeclaredField("mEdgeSize"); edgeSizeField.setAccessible(true); int edgeSize = edgeSizeField.getInt(leftDragger); DisplayMetrics dm = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(dm); edgeSizeField.setInt(leftDragger, Math.max(edgeSize, (int) (dm.widthPixels * displayWidthPercentage))); } catch (Exception e) { } }private void initEvents() { mDrawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerStateChanged(int newState) { } @Override public void onDrawerSlide(View drawerView, float slideOffset) { View mContent = mDrawerLayout.getChildAt(0); View mMenu = drawerView; float scale = 1 - slideOffset; float rightScale = 0.8f + scale * 0.2f; if (drawerView.getTag().equals("LEFT")) { float leftScale = 1 - 0.3f * scale; ViewHelper.setScaleX(mMenu, leftScale); ViewHelper.setScaleY(mMenu, leftScale); ViewHelper.setAlpha(mMenu, 0.6f + 0.4f * (1 - scale)); ViewHelper.setTranslationX(mContent, mMenu.getMeasuredWidth() * (1 - scale)); ViewHelper.setPivotX(mContent, 0); ViewHelper.setPivotY(mContent, mContent.getMeasuredHeight() / 2); mContent.invalidate(); ViewHelper.setScaleX(mContent, rightScale); ViewHelper.setScaleY(mContent, rightScale); } else { ViewHelper.setTranslationX(mContent, -mMenu.getMeasuredWidth() * slideOffset); ViewHelper.setPivotX(mContent, mContent.getMeasuredWidth()); ViewHelper.setPivotY(mContent, mContent.getMeasuredHeight() / 2); mContent.invalidate(); ViewHelper.setScaleX(mContent, rightScale); ViewHelper.setScaleY(mContent, rightScale); } } @Override public void onDrawerOpened(View drawerView) { } @Override public void onDrawerClosed(View drawerView) { } }); }mDrawerLayout = (DrawerLayout) findViewById(R.id.id_drawerLayout); //设置滑动边距 setDrawerLeftEdgeSize(this, mDrawerLayout, 0.8f);
0 0
- DrawerLayout设置滑动边距
- DrawerLayout设置滑动边距
- 利用反射修改drawerLayout滑动边距
- drawerLayout设置滑动打开的,滑动禁止的代码
- Android——DrawerLayout滑动范围的设置
- DrawerLayout 关闭手势滑动
- DrawerLayout 关闭手势滑动
- DrawerLayout禁用侧边滑动
- DrawerLayout禁用侧边滑动
- DrawerLayout禁用侧边滑动
- 自定义DrawerLayout 滑动范围
- 自定义DrawerLayout滑动样式
- 滑动菜单DrawerLayout
- SlidingMenu滑动菜单及DrawerLayout
- 关闭DrawerLayout的手势滑动
- Android 左右滑动菜单 DrawerLayout简单实现
- Android的DrawerLayout全屏滑动显示
- photoview与drawerlayout滑动冲突-ArrayIndexOutOfBounds
- 浅析Apache/Tomcat/JBOSS/Nginx之区别
- jQuery ajax()使用serialize()提交form数据
- Gradient Boosting
- 杭电分类
- 使用mp4parser进行音视频合成
- DrawerLayout设置滑动边距
- C# 获取系统相关时间
- 冒烟测试、回归测试、随机测试
- C++文件组织形式笔记
- 无聊之作
- c3p0找不到驱动包
- Learning from data 中英文字幕 Caltech's Machine Learning Course - CS 156 by Professor Yaser Abu-Mostafa
- 记录生活
- ATSAMV7Xult板卡调试Nuttx系统----以太网卡与DHCP客户端的配置和调试