股票场内基金交易,没时间盯盘?

   
使用优财助手电脑客户端记录下您的股票买入卖出数据,能帮您时刻盯盘,会根据您记录的未售出买入价计算上涨或下跌幅度,及时弹框通知您。想知道如何使用?快点击左方视频观看了解吧~~下载地址:http://youcaizhushou.com

关于Toolbar中navigationIcon和title之间距离及展开

问题缘起

在进行Coolcode项目的MyclassActivity中,我发现navigationIcon和title之间的实际间距与UI图不符,虽然康师傅说不需要改,但是出于好奇心我还是希望明白其中原因。
UI要求

实际显示

问题分析

由于学习Android时间不长,无法一步直指问题所在,所以我们就从和Toolbar有关的所有代码里面一个个找(在myclasses里面)。
首先我们在MyClassActivity中首次调用了BaseActivity中的initBackToolbar(Toolbar toolbar, @StringRes int title, @DrawableRes int navigationIcon)方法,显然这个方法并没有对距离有任何修改。
那么我们在来看这个BaseActivity中的方法,它给Toolbar设置了title和navigationIcon,但是并不能看到其中有对之间的距离有做相应修改,我们翻看其他myclasses下的类,也并没有发现。

那么,问题看来只能是出现在Toolbar中了,那么来看一下Toolbar代码。
……!
好长!相信没有完整的时间和计划大家是不会想好好看完这段代码的。那么我们直接来看里面最重要的控制输出的代码onLayout(boolean changed, int l, int r, int b)

整理逻辑:

onLayout函数先判定并输出NavigationIcon,CollapseButton和Menu三个控件。
比较系统缩进值和真实缩进值,取大者为实际缩进值。
onLayout函数判定并输出ExpandedAction和Logo两个控件。
onLayout函数判定并输出Title和SubTitle两个控件。

根据实际需求,实际mToolbar需要输出的只有NavigationIcon和Title控件。那么两者之间的距离就应该是实际缩进值。
简单的来说,就是left = Math.max(left, contentInsetLeft);的这个left。
那么实际缩进值是如何计算的呢,我们重新进入代码:

那么ContentInsetStart和ContentInsetStartWithNavigation的值是多少呢,我们打开appcompat-v7包的以下位置.

Toolbar的默认style是appcompat-v7中的Widget.AppCompat.Toolbar

Widget.AppCompat.Toolbar的父类是Base.Widget.AppCompat.Toolbar

contentInsetStart的值是16dp,contentInsetStartWithNavigation简单查找出来是72dp。
所以,当我们的NavigationIcon控件宽度较小的时候,title与父视图的左边框缩进为72dp,而不是紧随NavigationIcon(一般为56db)。

解决方法

搞明白了问题的原因,自然也找到了问题的解决方法。
我们打开程序/src/main/res/values/styles.xml,自创一个新的style(父类设定为Base.Widget.AppCompat.Toolbar),在style中重写资源代码:

简单的设定为0dp的话就保证Title的left参数紧贴NavigationIcon。
当然,我们也可以进行其他的设定来控制title的位置啦!

   

想获得去掉 5 元限制的证券账户吗?

证券交易股票基金的佣金,不足 5 元会按照 5 元收取。比如交易 1000 元的股票,按照普遍的证券佣金手续费率万 2.5,其交易佣金为 0.25 元,小于 5 元,实际会收取佣金 5 元,买卖两次需要支付 10 元佣金成本,1% 的利润就这样没了。

如果您想去掉最低交易佣金 5 元限制,使用微信扫描左边小程序二维码,访问微信小程序「优财助手」,点击底部菜单「福利」,阅读文章「通过优财开证券账户无最低交易佣金 5 元限制」,按照文章步骤操作即可获得免 5 元证券账户,股票基金交易手续费率万 2.5。

请注意,一定要按照文章描述严格操作,如错误开户是无法获得免 5 元证券账户的。

Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注