俗话说的好,好记性不如烂笔头,这个问题之前还记得,时间长了这个属性一时间还真想不起来,好了,废话不多说了,直接上图看效果;
问题截图
使用fillViewport="true"属性之后
查原因
遇到问题可以第一时间去看看源码,看看有没有解决方法,通过点击NestedScrollView发现这个方法
/**
* Indicates whether this ScrollView's content is stretched to fill the viewport.
*
* @return True if the content fills the viewport, false otherwise.
*
* @attr name android:fillViewport
*/
public boolean isFillViewport() {
return mFillViewport;
}
注释翻译过来是:指示是否拉伸此滚动视图的内容以填充视区;换句话说就是NestedScrollView的fillVeewport是false时,子控件也就是LinearLayout会按wrap_content来计算(即使你设置了fill_parent或者match_parent)当然LinearLayout的子控件设置fill_parent或者match_parent也不管用,因为LinearLayout相当于是wrap_content,依赖子控件的高度这就互相冲突了,所以也是按照wrap_content来计算;
有点绕口但是你就记住这一句话就好 子控件高度不超过一屏时,设置fillVeewport=true就会充满屏幕
示例代码
这一篇也是我在简书上写的第一篇文章,给自己做个笔记的同时也希望能帮助到别人,另外有任何关于Android开发都可以加我微信15733125211,顺便备注一下Android开发哦,随时沟通探讨技术。