ScrollView使底部视图退出

3
我有一个LinearLayout,里面有一个ScrollView和一个位于ScrollView下方的复选框。每当我在ScrollView中输入大量文本时,它就会扩展到整个屏幕并将底部的复选框视图挤出。如何防止这种情况发生?
基本上,我希望复选框始终位于ScrollView正下方。我还希望ScrollView根据其文本收缩和扩展。当内部有大量文本时,它应该扩展到仍然可以在屏幕底部看到复选框的位置。
它应该像这样:
其中填充的ScrollView如果文本过多应该有滚动条,而不是将复选框从屏幕中挤出。
帮帮我!
我的布局如下:
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <!-- TextView inside --->

    </ScrollView>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="80dp"
        android:gravity="top"
        android:orientation="horizontal" >

        <!-- CheckBox inside --->

    </RelativeLayout>

</LinearLayout>

不用担心语法或者内部的所有东西,我写这个只是因为代码内部非常冗长而且不必要!

我认为我知道发生了什么事,但在看到你的layout.xml之前,我不想提供答案。你能贴出来吗? - bstar55
3个回答

1
尝试使用这个布局:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1">

        <!-- TextView inside --->

    </ScrollView>



        <!-- CheckBox Here --->



</LinearLayout>

它不起作用,当滚动视图仅填充很少内容时,复选框仍停留在底部。 - raybaybay
1
如果答案不可行,为什么要将其标记为被接受的答案?这会误导未来的其他读者。 - bstar55

0

让我们从简单的开始。尝试用RelativeLayout替换你的父级LinearLayout。如果这不起作用,你可能需要使用权重或像素(这是非理想的)来固定ScrollView的高度:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <!-- TextView inside --->

    </ScrollView>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="80dp"
        android:gravity="top"
        android:orientation="horizontal" >

        <!-- Stuff inside --->

    </RelativeLayout>

</RelativeLayout>

0

为您的ScrollView定义一个固定大小。随着文本变得越来越大,滚动条被定义为该大小(如layout_height="100dp"

更新

尝试类似于这样的内容

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="200dp" >



        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

           <!-- TextView's inside - -->

        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <!-- CheckBox's inside - -->

    </LinearLayout>

</LinearLayout>

但这并不能改变复选框必须直接放在滚动视图下面的事实,即使滚动视图中内容很少。 - raybaybay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接