NavigationDrawer 间距修改及延伸

新项目中,使用了NavigationDrawer 控件来做侧边栏。第一次使用NavigationDrawer,
踩坑是必不可少的。下面,来展示 NavigationDrawer 不需要自定义来快速修改布局。算是一种黑科技吧。

NavigationDrawer 的详细是用过程

http://www.jianshu.com/p/c8cbeb7ea43a

(作者提出)不实用的 NavigationView 一个观点

下面,就用黑科技来把不实用变成实用。
最开始,网上搜到的也是一堆的自定义view继承,把一些不可控制的属性放出来,变成可控。
其实 NavigationView 的各种事件,已经满足我们的需求了。我们的需求,也就是产品经理的想要的,
是希望具有她想象中的美感而已。经常被ui折腾个半死。

 @Override
    public void initForMenu(Context context, MenuBuilder menu) {
        mLayoutInflater = LayoutInflater.from(context);
        mMenu = menu;
        Resources res = context.getResources();
        mPaddingSeparator = res.getDimensionPixelOffset(
                R.dimen.design_navigation_separator_vertical_padding);
    }

在NavigationView源码中,看到这样一段代码,猜测,NavigationView 的一个属性,然后跟进去。
进dimen文件中查询这个值。

<dimen name="design_navigation_elevation">16dp</dimen>

然后直接复制这个名字到本地的 dimen 文件中,将值改为100dp。编译运行,发生强烈的化学反应。

高度

改用as后,自己写过module,打包过aar, aar 中的图片会被 本地重名的 图片资源所代替。一个道理,
那重名的属性,应该也会覆盖。这边算想法测试成功。

接下来,继续把黑科技放大。

如果图片资源可以替代,命名属性可以替代,那我整个view是不是也可以替代。

又是猜想,中间是一样的item,应该是个adapter。layout 中找一下

看名字

design_navigation_item.xml

二话不说,ctrl c ctrl v

design_navigation_item.xml

摸摸在布局中加了一行代码 ,shift F10

 android:paddingLeft="10dp"

猜想成功。。。幸福来的太突然。

最后效果图

总结

1、使用范围:不改变 view 的具体代码逻辑,只修改 xml。(其他view一个道理)
为什么是 xml。当然还有动画拉!!!! 下个目标,修改侧拉动画成 ios 某种效果。

2、道行不够,编译过程,为什么资源会被替换,希望知道的前辈能回答下。
自己写代码的时候,注意一下规范,造福他人。

3、打个广告,微视频(名字暂定),下周估计上线,navigation 自定义布局。太丑怪产品!

4、android 研究群:194802363。 我tm 也是管理好几百号人的管理员。

5、福州地区有好的项目的可以联系。

爱他就让他学android,恨他也让他学android。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值