如何在屏幕底部放置Imageview?

时间:2018-01-18 08:32:49

标签: android android-layout

我正在进行UI设计,我在这里遇到的问题是我在最终按钮的底部安装了 ImageView ,并且需要该图像视图来填充屏幕底部的剩余空间。尝试了不同的方法,但如果我在scrollview imageview中设置 ImageView 高度是 matchparent .Hereby我附加我的布局建议我一些想法来解决这个问题。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/social_login"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:orientation="vertical">

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1.0"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="?android:attr/actionBarSize"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/logo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/large_logo" />

        <EditText
            android:id="@+id/username"
            android:layout_width="280dp"
            android:layout_height="50dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="40dp"
            android:hint="@string/username_label"
            android:inputType="textEmailAddress"
            android:singleLine="true"
            android:textColorHint="@color/signin_field_hint" />

        <EditText
            android:id="@+id/password"
            android:layout_width="280dp"
            android:layout_height="50dp"
            android:layout_gravity="center_horizontal"
            android:hint="@string/password_label"
            android:inputType="textPassword"
            android:singleLine="true"
            android:textColorHint="@color/signin_field_hint" />

        <Button
            android:id="@+id/signin_btn"
            style="@style/ButtonMain"
            android:layout_width="@dimen/button_width"
            android:layout_height="@dimen/button_height"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="20dp"
            android:text="@string/signIn_label" />

        <TextView
            android:id="@+id/forgot_password"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="12dp"
            android:gravity="center_horizontal"
            android:text="@string/need_help_Signing_label"
            android:textColor="@color/need_help_Signing"
            android:textSize="@dimen/need_help_signing_label_size" />

        <Button
            android:id="@+id/create_account"
            style="@style/ButtonMain"
            android:layout_width="@dimen/button_width"
            android:layout_height="@dimen/button_height"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="12dp"
            android:text="Final Button" />

        <TextView
            android:id="@+id/or"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="10dp"
            android:gravity="center_horizontal"
            android:text="@string/or_label"
            android:textColor="@color/or"
            android:textSize="@dimen/or_label_size"
            android:visibility="gone" />

        <TextView
            android:id="@+id/add_card_section_title"
            style="@style/SectionTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Dialer"
            android:visibility="gone" />
 //need this image view to fill the remaining space at bottom 
        <ImageView
            android:id="@+id/login_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center_horizontal"
            android:layout_marginBottom="30dp"
            android:layout_marginTop="10dp"
          />

       </LinearLayout>
   </ScrollView>

2 个答案:

答案 0 :(得分:1)

这是一个棘手的问题,因为您使用的是ScrollView

首先,将android:fillViewport="true"添加到ScrollView

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1.0"
    android:fillViewport="true">
   ...
</ScrollView>

其次,添加Space视图以填充ImageView上方的额外空格。使用以下内容重新//need this image view to fill the remaining space at bottom

<Space
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

答案 1 :(得分:0)

Imageview 高度设置为match_parent。它肯定会填满整个底层空间。

<ImageView
            android:id="@+id/login_button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center_horizontal"
            android:layout_marginBottom="30dp"
            android:layout_marginTop="10dp"
          />