0

我想创建一个这样的视图:

在此处输入图像描述

我尝试了这种布局架构:

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

    <TextView> // The blue top bar

    <ScrollView android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" ></ScrollView>

    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:orientation="vertical">

        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal">
        </TextView>

        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal">
        </TextView>

        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Description"
            android:gravity="center_horizontal">
        </TextView>

        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal">
        </TextView>

        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Place"
            android:gravity="center_horizontal">
        </TextView>

        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal">
        </TextView>

    </LinearLayout>

    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:gravity="bottom">

        <ImageView android:layout_width="wrap_content"
           android:layout_height="40dp"
           android:clickable="false"
           android:scaleType="center" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:gravity="left"
            android:orientation="horizontal" >

            <Button
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_gravity="center_vertical"
                android:text="Button 1" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_gravity="center_vertical"
                android:text="Button 2" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_gravity="center_vertical"
                android:text="Button 3" />

        </LinearLayout>

    </RelativeLayout>

</RelativeLayout>

但这由于某些原因不起作用,首先它没有在底部栏中显示我想要的按钮。

我是 Android 开发的初学者,所以请帮助我。

4

2 回答 2

1
  1. id分配给“放置”组件,以便稍后在放置按钮时参考此 id:

           <LinearLayout
               android:id="@+id/placeLayout"
               ...
            />
    
  2. 在相对布局中,您可以通过以下方式告诉您的按钮位于 id=placeLayout 的组件下:

           <Button
            android:id="@+id/button1"
            android:layout_below="@+id/placeLayout"
            ... />
    
  3. 如果您希望一个按钮位于另一个按钮的右侧并位于 placeLayout 组件下,请编写:

        <Button
           android:id="@+id/button2"
           android:layout_below="@+id/placeLayout"
           android:layout_toRightOf="@+id/button1"
           ...
        />
    
        <Button
           android:id="@+id/button3"
           android:layout_below="@+id/placeLayout"
           android:layout_toRightOf="@+id/button2"
           ...
        />
    

这是完整的参数列表,您可以使用它来“告诉”每个元素必须放置的位置:http: //developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html

于 2013-01-28T20:44:49.963 回答
1

我的建议是,使用线性布局并使用“android:weightSum”(主布局)和“android:layout_weight”(内部视图)属性,一开始可能很复杂,但后来它会是最好的方法适合任何屏幕。检查此线程:Android 中的线性布局和权重

使用该技术,您可以告诉主布局内的每个内部视图(或布局)它应该填充多少空间。

即:如果主布局有 android:weightSum=1 并且每个内部视图都有 android:layout_weight=0.33 它会导致每个内部视图填充可用总空间的 1/3。

于 2013-01-28T20:54:01.187 回答