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. 「Place」コンポーネントにIDを割り当てます。これにより、後でボタンを配置するときにこの ID を参照できます。

           <LinearLayout
               android:id="@+id/placeLayout"
               ...
            />
    
  2. 相対レイアウトでは、ボタンが id=placeLayout のコンポーネントの下にあるように次のように指定できます。

           <Button
            android:id="@+id/button1"
            android:layout_below="@+id/placeLayout"
            ... />
    
  3. 1 つのボタンを別のボタンの右に配置し、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 の Linear Layout and weight

その手法を使用して、メイン レイアウト内の各内部ビュー (またはレイアウト) に、それが埋める必要があるスペースの数を伝えます。

つまり、メイン レイアウトに android:weightSum=1 があり、すべての内部ビューに android:layout_weight=0.33 がある場合、すべての内部ビューが使用可能な合計スペースの 1/3 を占めることになります。

于 2013-01-28T20:54:01.187 に答える