我的情况是这样的: 我有一个线性布局,其中我有一个图像视图和大约10个editTexts。我希望ImageView的大小是屏幕高度的一半,剩下的编辑文本占据了剩余的空间,并在需要时滚动。
我将线性布局包裹在滚动视图中,并将权重和指定为线性布局。然后将layout_weight分配给imageView,其余部分分别为wrap_content的layout_height。但这完全隐藏了imageview。我应该如何获得我想要的那种布局?
我的layout.xml:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="10dp"
android:id="@+id/imageView" android:layout_gravity="center" android:background="#bcddff"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Launch Camera"
android:id="@+id/button" android:layout_gravity="center"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Enter Name"
android:id="@+id/name" android:layout_gravity="center"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Mobile No."
android:id="@+id/mobile" android:layout_gravity="center" android:inputType="phone"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Whatsapp No."
android:id="@+id/whatsapp" android:layout_gravity="center" android:inputType="phone"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Email"
android:id="@+id/email" android:layout_gravity="center"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Age"
android:id="@+id/age" android:layout_gravity="center"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Address"
android:id="@+id/address" android:layout_gravity="center"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="City"
android:id="@+id/city" android:layout_gravity="center"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="State"
android:id="@+id/state" android:layout_gravity="center"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Gender(M/F)"
android:id="@+id/gender" android:layout_gravity="center"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Remarks"
android:id="@+id/remarks" android:layout_gravity="center"/>
</LinearLayout>
</ScrollView>
答案 0 :(得分:0)
当设置布局权重时,高度必须是match_parent或0dp(如果Match_parent,则布局随着权重的减小而变大,具有讽刺意味的是,如果为0dp,则布局随着权重的增加而变大)。父项在wrap_content中时,布局权重无法正常工作。
希望这有帮助,
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#bcddff" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Launch Camera" />
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Enter Name" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/mobile"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Mobile No."
android:inputType="phone" />
<EditText
android:id="@+id/whatsapp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Whatsapp No."
android:inputType="phone" />
<EditText
android:id="@+id/email"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Email" />
<EditText
android:id="@+id/age"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Age" />
<EditText
android:id="@+id/address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Address" />
<EditText
android:id="@+id/city"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="City" />
<EditText
android:id="@+id/state"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="State" />
<EditText
android:id="@+id/gender"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Gender(M/F)" />
<EditText
android:id="@+id/remarks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Remarks" />
</LinearLayout>
</LinearLayout>
</ScrollView>