0

我正在尝试将按钮置于布局的底部,但它不起作用......该按钮正在将其自身显示在应该位于其上方的图像上。

这是xml代码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true"
    android:layout_gravity="center"
     >
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
         >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="28dp"
            android:layout_marginTop="32dp" />

        <TextView
            android:id="@+id/txtAppName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/imageView1"
            android:layout_marginLeft="22dp"
            android:layout_toRightOf="@+id/imageView1"
            android:text=""
            android:textSize="36px"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtAppAuthor"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/txtAppName"
            android:layout_below="@+id/txtAppName"
            android:layout_marginTop="5px"
            android:text=""
            android:textSize="24px"
            android:textStyle="normal" />


        <TextView
            android:id="@+id/txtAppDesc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/imageView1"
            android:layout_below="@+id/imageView1"
            android:layout_marginTop="20dp"
            android:maxHeight="350px"
            android:text=""
            android:width="600px"
            android:maxLines="10"
            android:scrollbars = "vertical"
             /> 

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/txtAppDesc"
            android:layout_below="@+id/txtAppDesc"
            android:layout_marginTop="30dp" />

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/imageView2"
            android:layout_toRightOf="@+id/imageView2" />


        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/imageView3"
            android:layout_toRightOf="@+id/imageView3"
            android:visibility="visible" />


        <Button
            android:id="@+id/btnInstall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_alignBottom="@+id/imageview4"
            android:text="Download &amp; Install" />

    </RelativeLayout>
</ScrollView>

结果是:

在此处输入图像描述

预先感谢。

4

3 回答 3

2

你用过android:layout_alignBottom="@+id/imageview4"

这意味着您将按钮的底部与图像的底部对齐。

你必须使用android:layout_below="@+id/imageview4"

编辑:我并不是说这是最好的解决方案,因为有多种布局(用于优化......),但这应该有效:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/ScrollView01"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:fillViewport="true"
            android:layout_gravity="center"
        >
    <LinearLayout android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical">


        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:gravity="center"
                >

            <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="28dp"
                    android:layout_marginTop="32dp"/>

            <TextView
                    android:id="@+id/txtAppName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignTop="@+id/imageView1"
                    android:layout_marginLeft="22dp"
                    android:layout_toRightOf="@+id/imageView1"
                    android:text=""
                    android:textSize="36px"
                    android:textStyle="bold"/>

            <TextView
                    android:id="@+id/txtAppAuthor"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/txtAppName"
                    android:layout_below="@+id/txtAppName"
                    android:layout_marginTop="5px"
                    android:text=""
                    android:textSize="24px"
                    android:textStyle="normal"/>


            <TextView
                    android:id="@+id/txtAppDesc"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/imageView1"
                    android:layout_below="@+id/imageView1"
                    android:layout_marginTop="20dp"
                    android:maxHeight="350px"
                    android:text=""
                    android:width="600px"
                    android:maxLines="10"
                    android:scrollbars="vertical"
                    />

            <ImageView
                    android:id="@+id/imageView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/txtAppDesc"
                    android:layout_below="@+id/txtAppDesc"
                    android:layout_marginTop="30dp"/>

            <ImageView
                    android:id="@+id/imageView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignTop="@+id/imageView2"
                    android:layout_toRightOf="@+id/imageView2"/>


            <ImageView
                    android:id="@+id/imageView4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignTop="@+id/imageView3"
                    android:layout_toRightOf="@+id/imageView3"
                    android:visibility="visible"/>

        </RelativeLayout>


        <Button
                android:id="@+id/btnInstall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="Download &amp; Install"/>
    </LinearLayout>
</ScrollView>

我添加了一个线性布局,其中放置了内容和按钮。希望这会奏效。

于 2012-07-13T16:07:19.117 回答
1

您是否只想缩小按钮结束的图像以便为其腾出空间?如果是这样,您需要将包含该图像的 Imageview 作为相对布局中的最后一项。它将为除图像之外的所有内容分配空间,然后将剩余空间分配给图像,这就是为什么它需要放在最后。

另外,我建议给您的 imageViews 提供比“imageView#”更多信息的名称,因为很难分辨哪个是哪个。

于 2012-07-13T16:17:58.463 回答
0

您可能希望将图像包装在 Horizo​​ntalScrollView 中以保持所有图像的完整高度和宽度。我更改了很多 ViewGroups 的宽度和高度以适应 Horizo​​ntalScrollView,最后我在图像下方设置了 Button:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:fillViewport="true" >

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="28dp"
            android:layout_marginTop="32dp" />

        <TextView
            android:id="@+id/txtAppName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/imageView1"
            android:layout_marginLeft="22dp"
            android:layout_toRightOf="@+id/imageView1"
            android:text=""
            android:textSize="36px"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtAppAuthor"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/txtAppName"
            android:layout_below="@+id/txtAppName"
            android:layout_marginTop="5px"
            android:text=""
            android:textSize="24px"
            android:textStyle="normal" />

        <TextView
            android:id="@+id/txtAppDesc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/imageView1"
            android:layout_below="@+id/imageView1"
            android:layout_marginTop="20dp"
            android:maxHeight="350px"
            android:maxLines="10"
            android:scrollbars="vertical"
            android:text=""
            android:width="600px" />

        <HorizontalScrollView
            android:id="@+id/images"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/txtAppDesc"
            android:layout_marginTop="30dp" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageView
                    android:id="@+id/imageView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />

                <ImageView
                    android:id="@+id/imageView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />

                <ImageView
                    android:id="@+id/imageView4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />

            </LinearLayout>
        </HorizontalScrollView>

        <Button
            android:id="@+id/btnInstall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/images"
            android:layout_centerHorizontal="true"
            android:text="Download &amp; Install" />
    </RelativeLayout>

</ScrollView>

了解将 Horizo​​ntalScrollView 嵌套在 ScrollView 内(反之亦然)不会同时在 x 和 y 方向上产生平滑的滚动效果。但是您可以创建此效果,如下所述:Scrollview vertical and Horizo​​ntal in android

于 2012-07-13T16:31:34.440 回答