问题如果我有以下内容:
<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:layout_width="fill_parent" android:layout_height="?" android:orientation="vertical">
<EditText android:layout_width="fill_parent" android:layout_height="?" android:hint="Subject" android:id="@+id/subject" />
<EditText android:layout_width="fill_parent" android:layout_height="?" android:id="@+id/body" />
</LinearLayout>
</ScrollView>
如何让身体(第二个EditText)填充屏幕的其余部分,但是当身体的内容太长时仍然会有滚动视图?像height="wrap_content"
和minHeight="fill_parent"
layout_height="fill_parent"
似乎没有做任何事情
我想要的一个工作示例是电子邮件应用撰写窗口
我尝试了这个,而EditText元素的行为就像是wrap_content,并且没有填充。如果输入足够的
,只需滚动即可<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
<EditText android:layout_width="fill_parent" android:layout_height="fill_parent" layout_weight="1" android:hint="Subject" android:id="@+id/subject" />
<EditText android:layout_width="fill_parent" android:layout_height="fill_parent" layout_weight="1" android:id="@+id/body" />
</LinearLayout>
</ScrollView>
答案 0 :(得分:68)
我在mail app source code中遇到了my accepted answer on another question的链接。答案很简单!将android:fillViewport="true"
添加到<ScrollView...>
,然后将android:layout_weight="1.0"
添加到您要占用所有可用空间的视图中。在blogspot
答案 1 :(得分:5)
如上所述,正确的方法是使用 android:fillViewport =“true”属性。
有一个例子,图像将定位为和scrollview:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:orientation="vertical">
<LinearLayout
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="test"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/red">
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/about_us_image_1_land"
style="@style/layout_marginTop20"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
答案 2 :(得分:0)
为什么不将ScrollView设为fill_parent,将A和B设为wrap_content? 您唯一想要的是您的ScrollView适合屏幕。
答案 3 :(得分:0)
AlertDialog dialog = builder.show();
然后拨打
fixScrollViewHeight(滚动视图);
private void fixScrollViewHeight(ScrollView scrollView){
int screenHeight = activity.getWindowManager()。getDefaultDisplay()。getHeight();
LayoutParams lp = scrollView.getLayoutParams();
lp.height = screenHeight / 3;
scrollView.setLayoutParams(LP);
}