Android NestedScrollView嵌套LinearLayout,RecyclerView空数据界面时界面底部留白不充满问题解决

俗话说的好,好记性不如烂笔头,这个问题之前还记得,时间长了这个属性一时间还真想不起来,好了,废话不多说了,直接上图看效果;

问题截图

image.png

使用fillViewport="true"属性之后

image.png

查原因

遇到问题可以第一时间去看看源码,看看有没有解决方法,通过点击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就会充满屏幕

示例代码

image.png

这一篇也是我在简书上写的第一篇文章,给自己做个笔记的同时也希望能帮助到别人,另外有任何关于Android开发都可以加我微信15733125211,顺便备注一下Android开发哦,随时沟通探讨技术。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容