【发布时间】:2014-08-19 16:22:00
【问题描述】:
我正在尝试将 ImageView 和 LinearLayout 设置为各占屏幕的一半。这在平板电脑上效果很好,但在较小的屏幕上,图像会占据整个屏幕(因此,实际上不起作用)。
我看到的方式是,我在 ImageView 和 LinearLayout 上都设置了 layout_weight="1" ,并且在两者上也设置了 layout_width="0dp" 。这应该有效,因为我对此进行了很多研究。
我的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/button_text_white">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@drawable/image"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:padding="20dp"
android:orientation="vertical"
android:gravity="bottom">
<TextView
android:id="@+id/text_view_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:gravity="center"
android:textSize="24dp"
android:textColor="@color/button_text_white"
android:visibility="invisible"/>
<TextView
android:id="@+id/text_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_in_username_text"
android:textColor="@color/color"/>
<EditText
android:id="@+id/edit_text_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:inputType="text"
android:textColor="@color/color"
android:hint="@string/sign_up_in_username_hint"/>
<TextView
android:id="@+id/text_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_in_email_text"
android:textColor="@color/color"/>
<EditText
android:id="@+id/edit_text_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:inputType="textEmailAddress"
android:textColor="@color/color"
android:hint="@string/sign_up_in_email_hint"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_in_password_text"
android:textColor="@color/color"/>
<EditText
android:id="@+id/edit_text_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:inputType="textPassword"
android:textColor="@color/color"
android:hint="@string/sign_up_in_password_hint"/>
<TextView
android:id="@+id/text_view_forgotten_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:gravity="right"
android:text="@string/forgotten_password_text"
android:textColor="@color/color"/>
<Button
android:id="@+id/button_sign_up_in"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:textColor="@color/color"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
谢谢,感谢任何帮助!
【问题讨论】:
-
尝试将
weightSum="2"设置为它的父布局。 -
你的父布局应该有
weightSum = "2" -
对不起,我应该提到我已经尝试过了,它仍然不起作用:/
-
您使用的是
ScrollView,它没有特定的高度,因此会出现问题。 -
weightSum大部分时间都不需要。如果漏掉,系统会为你计算出来的