laobie / StatusBarUtil

A util for setting status bar style on Android App.
http://t.cn/Rq746Kb
Apache License 2.0
8.81k stars 1.72k forks source link

自定义标题栏和状态栏之间间距问题 #143

Closed yl82846094 closed 6 years ago

yl82846094 commented 7 years ago

请问在fragment中使用这个框架的时候,能否用代码设置那个View在各个分辨率下的res/values-v19/dimens的statusbar_view_height,又该怎么设置?因为在xml下设置那个view的高度不能很好的完成适配。我现在的需求是跟美团一样在主页的fragment里面scrollview上滑,状态栏和自定义标题栏颜色从透明渐变到蓝色,渐变我已经完成,只是那个view高度适配的时候,我试着写了多种分辨率的res/value-1024x768等等,但值大了状态栏和自定义标题栏会因为底色的反差就会有一条间隔,值小了两者就会重叠,不能很好实现完全挨在一起,你的sample代码里面因为都是纯色(透明和随机出来的一个色号),不会渐变与底色反差,所以没有这个问题

laobie commented 7 years ago

没太看懂你的问题,能否贴图看看, issue 里面支持 markdown 语法,可以贴图的

yl82846094 commented 7 years ago

就是这种现象 :

image

你的simple代码在fragment中使用这个框架的时候,添加了一个View,它的高度是在4.4版本以上就是res/values-v19/dimens中statusbar_view_height的值 ,这个值设的是25dp。我参考25dp通过xml文件设置各分辨率适配

image

但是这种方法不能很好的完成适配,各分辨率xml文件中的值如果大了就会在scrollview上滑时,状态栏和自定义标题栏颜色渐变颜色与底色的色差会有一条白色的间隔,如果值小了就会有上面的部分重叠现象。所以我想请问一下能否通过代码或其他方法设置,更好的完成适配?

laobie commented 7 years ago

代码获取状态栏高度呢,你试试看

yl82846094 commented 7 years ago

image

我在除Imagefragment之外的fragment中都是这样用代码设置的,但是效果是这样的

image

yl82846094 commented 7 years ago

mViewHeight就是那个适配高度的View,代码能够能够获取到状态栏的值,但是设置之后效果都是顶到上面去了

laobie commented 7 years ago

这看起来代码获取的状态栏高度不太对啊

yl82846094 commented 7 years ago

不是这样获取吗?我看你的框架里面也有个这样的私有方法

image

wzgl5533 commented 6 years ago

我也是遇到类似的问题,我修改系统的密度去适配界面,我在做滚动渐变修改状态栏的颜色时,它和标题栏之间会有一条间隔(主要出现在哪些分辨率和密度不匹配的设备上),有什么方法解决?@yl82846094

关键代码: StatusBarUtil.setTranslucentForImageView(this, 1, findViewById(R.id.head));

wzgl5533 commented 6 years ago

可有方法解决?@laobie

yl82846094 commented 6 years ago

@wzgl5533 当时没有找到很好的解决办法,所以后来我让UI改了这个需求.现在你看看下面的代码是否对你有帮助吧 1 2 3

wzgl5533 commented 6 years ago

我目前不知道在我滚动渐变状态栏的时候为啥初始的状态栏高度好像减小了(我才用修改密度去适配界面,平板的密度和分辨率不合) 初始: image

滚动后,红色矩形那块的高度减小了,而且是在我使用上面的 StatusBarUtil.setTranslucentForImageView(this, 1, findViewById(R.id.head)); 代码的时候