我正在进行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>
答案 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"
/>