Android 使用ScrollView属性fillViewport解决android布局不能撑满全屏的问题

一、缘由:

使用了ScrollView嵌套LinearLayout时,在大屏幕手机如三星note3手机上下面会留白,问题的解决办法是在第一层LinearLayout里面嵌套多个LinearLayout,最重要的是将ScrollView中android:fillViewport设置为true。
当ScrollView里的元素想填满ScrollView时,使用”fill_parent”是不管用的,必需为ScrollView设置:android:fillViewport=”true”。

当ScrollView没有fillVeewport=“true”时, 里面的元素(比如LinearLayout)会按照wrap_content来计算(不论它是否设了”fill_parent”),而如果LinearLayout的元素设置了fill_parent,那么也是不管用的,因为LinearLayout依赖里面的元素,而里面的元素又依赖LinearLayout,这样自相矛盾.所以里面元素设置了fill_parent,也会当做wrap_content来计算.

———————————————————————
有需求者请加qq:136137465,非诚勿扰
(java 架构师全套教程,共760G, 让你从零到架构师,每月轻松拿3万)
01.高级架构师四十二个阶段高
02.Java高级系统培训架构课程148课时
03.Java高级互联网架构师课程
04.Java互联网架构Netty、Nio、Mina等-视频教程
05.Java高级架构设计2016整理-视频教程
06.架构师基础、高级片
07.Java架构师必修linux运维系列课程
08.Java高级系统培训架构课程116课时
(送:hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门)
——————————————————————–

二、布局示例:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg"
    android:fillViewport="true" >
    <!--ScollView 包裹的孩子 默认高度只能是包裹内容 
     android:fillViewport="true"允许孩子是匹配父容器  -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/photo_layout"
            android:layout_width="match_parent"
            android:layout_height="55dp"
            android:background="@drawable/menu_icon_bg"
            android:paddingLeft="10dp"
            android:paddingRight="10dp" >

            <ImageView
                android:id="@+id/image_photo"
                android:layout_width="55dp"
                android:layout_height="55dp"
                android:background="@drawable/bg_photo"
                android:padding="5dip" />

            <ImageView
                android:id="@+id/image_over"
                android:layout_width="55dp"
                android:layout_height="55dp"
                android:src="@drawable/photo_over" />

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="55dp"
                android:layout_marginLeft="20dp"
                android:layout_toRightOf="@id/image_photo"
                android:gravity="center_vertical" >

                <TextView
                    android:id="@+id/user_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:singleLine="true"
                    android:text="@string/tv_user_name"
                    android:textColor="#2b2b2b"
                    android:textSize="18dp" />

                <TextView
                    android:id="@+id/user_email"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/user_name"
                    android:layout_marginTop="5dp"
                    android:singleLine="true"
                    android:text="@string/tv_user_email"
                    android:textColor="#7a7a7a"
                    android:textSize="14dp" />
            </RelativeLayout>
        </RelativeLayout>

        <!-- 4f4f4f -->

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:background="#1a000000" />

        <RelativeLayout
            android:id="@+id/home_layout"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/menu_item_bg"
            android:gravity="center_vertical"
            android:paddingLeft="15dp" >

            <ImageView
                android:id="@+id/ic_home"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_centerVertical="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_home" />

            <TextView
                android:id="@+id/tv_home"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="15dp"
                android:layout_toRightOf="@id/ic_home"
                android:text="@string/tv_home"
                android:textColor="#9b9b9b"
                android:textSize="18dp" />
        </RelativeLayout>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:background="#1a000000" />

        <RelativeLayout
            android:id="@+id/setting_layout"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/menu_item_bg"
            android:gravity="center_vertical"
            android:paddingLeft="15dp" >

            <ImageView
                android:id="@+id/ic_setting"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_centerVertical="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_setting" />

            <TextView
                android:id="@+id/tv_setting"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="15dp"
                android:layout_toRightOf="@id/ic_setting"
                android:text="@string/tv_setting"
                android:textColor="#9b9b9b"
                android:textSize="18dp" />
        </RelativeLayout>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:background="#1a000000" />

        <RelativeLayout
            android:id="@+id/theme_layout"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/menu_item_bg"
            android:gravity="center_vertical"
            android:paddingLeft="15dp" >

            <ImageView
                android:id="@+id/ic_theme"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_centerVertical="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_theme" />

            <TextView
                android:id="@+id/tv_theme"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="15dp"
                android:layout_toRightOf="@id/ic_theme"
                android:text="@string/tv_theme"
                android:textColor="#9b9b9b"
                android:textSize="18dp" />
        </RelativeLayout>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:background="#1a000000" />

        <RelativeLayout
            android:id="@+id/scans_layout"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/menu_item_bg"
            android:gravity="center_vertical"
            android:paddingLeft="15dp" >

            <ImageView
                android:id="@+id/ic_scans"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_centerVertical="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_scans" />

            <TextView
                android:id="@+id/tv_scans"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="15dp"
                android:layout_toRightOf="@id/ic_scans"
                android:text="@string/tv_scans"
                android:textColor="#9b9b9b"
                android:textSize="18dp" />
        </RelativeLayout>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:background="#1a000000" />

        <RelativeLayout
            android:id="@+id/feedback_layout"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/menu_item_bg"
            android:gravity="center_vertical"
            android:paddingLeft="15dp" >

            <ImageView
                android:id="@+id/ic_feedback"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_centerVertical="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_feedback" />

            <TextView
                android:id="@+id/tv_feedback"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="15dp"
                android:layout_toRightOf="@id/ic_feedback"
                android:text="@string/tv_feedback"
                android:textColor="#9b9b9b"
                android:textSize="18dp" />
        </RelativeLayout>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:background="#1a000000" />

        <RelativeLayout
            android:id="@+id/updates_layout"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/menu_item_bg"
            android:gravity="center_vertical"
            android:paddingLeft="15dp" >

            <ImageView
                android:id="@+id/ic_updates"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_centerVertical="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_updates" />

            <TextView
                android:id="@+id/tv_updates"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="15dp"
                android:layout_toRightOf="@id/ic_updates"
                android:text="@string/tv_updates"
                android:textColor="#9b9b9b"
                android:textSize="18dp" />
        </RelativeLayout>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:background="#1a000000" />

        <RelativeLayout
            android:id="@+id/about_layout"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/menu_item_bg"
            android:gravity="center_vertical"
            android:paddingLeft="15dp" >

            <ImageView
                android:id="@+id/ic_about"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_centerVertical="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_about" />

            <TextView
                android:id="@+id/tv_about"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="15dp"
                android:layout_toRightOf="@id/ic_about"
                android:text="@string/tv_about"
                android:textColor="#9b9b9b"
                android:textSize="18dp" />
        </RelativeLayout>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:background="#1a000000" />

        <RelativeLayout
            android:id="@+id/exit_layout"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/menu_item_bg"
            android:gravity="center_vertical"
            android:paddingLeft="15dp" >

            <ImageView
                android:id="@+id/ic_exit"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_centerVertical="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_exit" />

            <TextView
                android:id="@+id/tv_exit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="15dp"
                android:layout_toRightOf="@id/ic_exit"
                android:text="@string/tv_exit"
                android:textColor="#9b9b9b"
                android:textSize="18dp" />
        </RelativeLayout>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:background="#1a000000" />
    </LinearLayout>

</ScrollView>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lovoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值