繁体   English   中英

Android版式片段中的空白区域

[英]White empty space in Android Layout fragment

在我的Android应用中,我有一个登录屏幕,到目前为止,该屏幕仍然可以正常运行。 它是在根ScrollView构造的,它具有一个垂直的LinearLayout名称为rootLayer。 在该rootLayer中,我有四个连续的LinearLayout ,如下面的xml布局文件所示。 但是我只同时显示三个。 取决于是登录还是注销,是第一层 (loggedOffLayer) 还是 第二层(loggedInLayer)。 然后 第三个和第四个第4(灰色)总是:

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:padding="0dp" > <LinearLayout android:id="@+id/rootLayer" android:layout_width="match_parent" android:layout_height="wrap_content" android:animateLayoutChanges="true" android:clickable="true" android:focusable="true" android:focusableInTouchMode="true" android:orientation="vertical" android:padding="0dp" > <LinearLayout android:id="@+id/loggedOffLayer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" tools:visibility="visible"> <!-- one two views and buttons--> </LinearLayout> <LinearLayout android:id="@+id/loggedInLayer" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/loggedOffLayer" android:orientation="vertical" android:visibility="gone" tools:visibility="visible"> <!-- some labels, textviews and buttons --> </LinearLayout> <LinearLayout android:id="@+id/about_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@+id/bottomLayer" android:layout_marginBottom="@dimen/grid1" android:gravity="center" android:orientation="horizontal" tools:visibility="visible"> <!-- labels with about text --> </LinearLayout> <LinearLayout android:id="@+id/bottomLayer" android:layout_width="match_parent" android:layout_height="120dp" android:background="@color/light_background" android:orientation="vertical"> <!-- imageviews and labels with pictures and legal text--> </LinearLayout> </LinearLayout> </ScrollView> 

登录后,一切正常。 但是当我注销后,如下所示 屏幕截图 ,最后一层(灰色)后有一个空白区域(红色箭头)。

如何将最后一层粘贴到底部,以便在每种情况下都没有白色条纹?

试试这个代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="2"
android:fillViewport="true"
>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1.8">

    <LinearLayout
        android:id="@+id/rootLayer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true"
        android:clickable="true"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:orientation="vertical"
        android:padding="0dp">

        <LinearLayout
            android:id="@+id/loggedOffLayer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            tools:visibility="visible">
            <!-- one two views and buttons-->

        </LinearLayout>

        <LinearLayout
            android:id="@+id/loggedInLayer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/loggedOffLayer"
            android:orientation="vertical"
            android:visibility="gone"
            tools:visibility="visible">
            <!-- some labels, textviews and buttons -->
        </LinearLayout>

        <LinearLayout
            android:id="@+id/about_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/bottomLayer"
            android:layout_marginBottom="15dp"
            android:gravity="center"
            android:orientation="horizontal"
            tools:visibility="visible">
            <!-- labels with about text -->
        </LinearLayout>




    </LinearLayout>
</ScrollView>

<LinearLayout
    android:id="@+id/bottomLayer"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight=".2"
    android:background="@color/Black"
    android:orientation="vertical">
    <!-- imageviews and labels with pictures and legal text-->
  </LinearLayout>
 </LinearLayout>

使用此代码,您的bottomLayer固定在底部。

我认为这很难做到,因为您使用的是scroll layoutscroll layout会随着您添加或删除widgets增大和缩小。

而且,因显示resolutions而异。 对于resolution scroll layout屏将增加,而对于高分辨率, scroll layout屏将缩小,因为屏幕上有很多空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM