1

我有一个位于 a 下方的ScrollView按钮,该按钮设置为与父级底部对齐。滚动视图设置wrap_content为它的高度。一旦ScrollView填充了内容,它就会出现在按钮下方。如何将其设置为不在按钮后面,以便ScrollView在按钮开始时结束?

我试过放在android:layout_below底部按钮,当它不起作用时,我尝试layout_aboveScrollView按钮上方的 for 中。最后一个导致我的应用程序在启动时崩溃,不知道为什么。第一个一旦ScrollView比屏幕长,它会导致按钮被放置在下面而无法访问它。

这是我的 XML 文件。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/light_blue"
    android:padding="5dp"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editText_query"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/queryPromt"
        android:imeOptions="actionNext"
        android:inputType="text"
        android:textColor="#000" />

    <EditText
        android:id="@+id/editText_tag"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText_query"
        android:layout_marginTop="10dp"
        android:layout_toLeftOf="@+id/saveButton"
        android:hint="@string/tagPrompt"
        android:imeOptions="actionDone"
        android:inputType="text" />

    <Button
        android:id="@id/saveButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/editText_query"
        android:text="@string/save" />

    <TextView
        android:id="@+id/textView_taggedSearches"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignRight="@id/saveButton"
        android:layout_below="@id/saveButton"
        android:layout_marginTop="10dp"
        android:background="#666"
        android:gravity="center_horizontal"
        android:text="@string/taggedSearches"
        android:textColor="#FFF"
        android:textSize="18sp" />

    <ScrollView
        android:id="@+id/scrollView_query"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView_taggedSearches"
        android:padding="5dp" >

        <TableLayout
            android:id="@+id/tableLayout_query"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:stretchColumns="*" >
        </TableLayout>
    </ScrollView>

    <Button
        android:id="@+id/button_clearTags"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="@string/clearTags" />

</RelativeLayout>
4

3 回答 3

1

尝试添加

android:layout_below="@id/scrollView_query"

到最后一个按钮

于 2012-12-07T20:08:13.130 回答
0

我以前在我的项目中这样做过。这是我的 xml 代码。您可以根据您的使用情况对其进行修改。

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_height="wrap_content" android:layout_width="fill_parent">
     <TextView android:id="@+id/TextView01" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="This text view should act as header  " />
     <ScrollView android:layout_marginBottom="50dip" android:id="@+id/ScrollView01" android:layout_height="wrap_content" android:layout_width="fill_parent">
          <RadioGroup android:id="@+id/RadioGroup01" android:layout_width="wrap_content" android:layout_height="wrap_content">
               <RadioButton android:id="@+id/RadioButton01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />       
          </RadioGroup>
     </ScrollView>
     <RelativeLayout android:layout_marginTop="-50dip" android:gravity="bottom" android:layout_height="wrap_content" android:layout_width="fill_parent">
        <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1">
         <TableRow>
        <Button android:id="@+id/Button01" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="One"/>
        <Button android:id="@+id/Button01" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Two" android:layout_gravity="center_vertical"/>
        <Button android:id="@+id/Button01" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Three" android:layout_gravity="right"/>
        </TableRow>
        </TableLayout>
     </RelativeLayout>
</LinearLayout>
于 2012-12-07T20:49:42.180 回答
0

您可以为此使用 layout_weight 。如果将 layout_height 设置为“0px”,则可以使用 layout_weight 在兄弟项目之间分配剩余的父空间。

在这种情况下,您希望按钮具有正常大小,并且滚动视图占据剩余的任何空间。这应该给你一个大致的想法:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent" >

    <ScrollView
     android:layout_width="fill_parent"
     android:layout_height="0px"
     android:layout_weight="1" >

        <TableLayout
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" />

    </ScrollView>

    <Button
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" />

</LinearLayout>
于 2012-12-07T21:06:51.753 回答