Android Scroll View 未填充设备屏幕

Posted

技术标签:

【中文标题】Android Scroll View 未填充设备屏幕【英文标题】:Android Scroll View not filling Device Screen 【发布时间】:2016-07-26 13:10:30 【问题描述】:

您好,我有一个加载 Xml 文件的片段。 xml文件代码如下。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:orientation="vertical"
android:scrollbars="vertical"
android:background="#2f3799"
android:fillViewport="true"
tools:context=".NewItem"
android:paddingEnd="0dp"
android:paddingStart="0dp">
<LinearLayout
    android:layout_
    android:layout_
    android:orientation="vertical">
    <LinearLayout
        android:layout_
        android:layout_
        android:background="#111a42"
        android:weightSum="1">
        <TextView
            android:layout_
            android:layout_
            android:text="SUBMIT YOUR POST"
            android:id="@+id/textHeading"
            android:textSize="15pt"
            android:textColor="#ffffff"
            android:textAlignment="center"
            android:layout_weight="20" />
    </LinearLayout>
    <TextView
        android:layout_
        android:layout_
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Category"
        android:textColor="#ffffff"
        android:id="@+id/textCategory"
        android:layout_alignParentStart="true"
        android:layout_marginTop="36dp" />
    <GridLayout
        android:id="@+id/gridLayout1"
        android:layout_
        android:layout_>
        <RadioGroup
            android:id="@+id/categoryRadio"
            android:layout_
            android:layout_
            android:orientation="horizontal" >
            <RadioButton
                android:id="@+id/motoRadio"
                android:layout_
                android:layout_
                android:checked="true"
                android:textColor="#ffffff"
                android:text="Motorbike" />
            <RadioButton
                android:id="@+id/carRadio"
                android:layout_
                android:layout_
                android:checked="true"
                android:textColor="#ffffff"
                android:text="Car" />
            <RadioButton
                android:id="@+id/otherRadio"
                android:layout_
                android:layout_
                android:checked="true"
                android:text="Others"
                android:textColor="#ffffff"/>
        </RadioGroup>
    </GridLayout>
    <TextView
        android:layout_
        android:layout_
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Title"
        android:textColor="#ffffff"
        android:id="@+id/textTitle" />
    <EditText
        android:layout_
        android:layout_
        android:background="@drawable/edittext_bg"
        android:id="@+id/titleText"
        android:inputType="text"
        android:hint="Item Title"
        android:singleLine="true"
        android:visibility="visible"
        android:typeface="sans"
        android:layout_weight="0.65"
        android:layout_marginLeft="10dp"
        android:layout_gravity="left"
        android:layout_below="@id/textTitle"/>
    <TextView
        android:layout_
        android:layout_
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Subject"
        android:textColor="#ffffff"
        android:id="@+id/textSubject" />
    <EditText
        android:layout_
        android:layout_
        android:inputType="text"
        android:background="@drawable/edittext_bg"
        android:id="@+id/subjectText"
        android:singleLine="true"
        android:visibility="visible"
        android:layout_marginLeft="10dp"
        android:typeface="sans"
        android:hint="Item Subject"
        android:layout_weight="0.65"
        android:layout_gravity="left" />
    <TextView
        android:layout_
        android:layout_
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Content"
        android:textColor="#ffffff"
        android:id="@+id/textContent"
        android:layout_below="@+id/subjectText"/>
    <EditText
        android:layout_
        android:layout_
        android:inputType="textMultiLine"
        android:ems="10"
        android:id="@+id/contentText"
        android:background="@drawable/edittext_bg"
        android:layout_marginLeft="10dp"
        android:textAlignment="textStart"
        android:textColor="#232121"
        android:layout_below="@id/textContent"/>
    <TextView
        android:layout_
        android:layout_
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Source"
        android:textColor="#ffffff"
        android:id="@+id/textSource"
        android:layout_below="@+id/contentText"/>
    <EditText
        android:layout_
        android:layout_
        android:inputType="text"
        android:background="@drawable/edittext_bg"
        android:id="@+id/sourceText"
        android:layout_marginLeft="10dp"
        android:layout_above="@+id/button"
        android:layout_below="@+id/textSource"/>
    <Button
        android:layout_
        android:layout_
        android:text="SUBMIT"
        android:textColor="#ffffff"
        android:id="@+id/button"
        android:onClick="submitItem"
        android:layout_gravity="center" />
</LinearLayout>
</ScrollView>

即使设置了android:fillViewport="true",视图也不会填满整个设备屏幕。为了清楚起见,请参见下图。等待你的回复。谢谢

【问题讨论】:

背后有什么表现?你能用片段容器发布布局吗? 在其白色的空白下方没有任何显示。黄色标记是为了支持我的空间观点。 无论如何发布带有片段容器的布局xml 【参考方案1】:

您似乎有默认填充,请检查您的活动布局并删除这些行:

    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"

【讨论】:

这就是我要求活动布局的原因。 @Nanoc 我真的不确定你所说的布局。【参考方案2】:

更改您的尺寸文件

 <dimen name="activity_horizontal_margin">0dp</dimen>
 <dimen name="activity_vertical_margin">0dp</dimen>

然后在布局中

 android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"

【讨论】:

【参考方案3】:

从您的 xml 中删除所有填充行

【讨论】:

【参考方案4】:

您的活动文件在主布局标记中包含填充。

【讨论】:

以上是关于Android Scroll View 未填充设备屏幕的主要内容,如果未能解决你的问题,请参考以下文章

Android 开发笔记___滚动视图__scroll view

Android群英传笔记——第五章:Android Scroll分析

Android开发学习之Scroll分析

Android开发学习之Scroll分析

Android Scroll 分析

onreachbottom视图未更新