7

Androidで線形(相対も試した)レイアウトの2つのケースがあります。1 つは水平方向で発生し、もう 1 つは垂直方向で発生します。水平から始めましょう:

それは次のようなものです:

<LinearLayout ... >   
    <Button ...  layout:gravity = "left" layout:width = "wrap_content"/>
    <TextView ... layout:width = ??????? />
    <Image  .... layout:gravity = "right" layout:width = "wrap_content"/>
</LinearLayout>

ええと、ボタンを左に、画像を右に(テキストビューのちょうど右ではなく、最後に貼り付ける)、テキストビューを(おそらく自動幅などを使用して)中央にとどめたいと思います. textview width = "fill/match_parent を入れると、画像が画面外に送信されます。wrap_content を入れると、画像は画面の右側に留まりません。相対レイアウトも試しましたが成功しませんでした。

vertical の同じケースで、次のようなものがあります。

<LinearLayout ...>
    <LinearLayout .... layout:height = "wrap_content" layout:gravity= "top" />
    <ListView layout:height = ???????>
    <LinearLayout ... layout:height = "wrap_content" layout:gravity = "bottom" />
</LinearLayout>

ここでも同じ要件。最初の L.layout を一番上に置き、それらの間のリスト ビューの自動サイズ設定を行い、2 番目の Linear レイアウトを一番下に置きます。(iPhone で UITableView のように見えるビューを作成しようとしていると想像してください。このビューには、NavigationBar、アイテムのリスト、下部にツールバーがあります。最初の LinearLayout は NavigationBar で、LIst ビューはセルで、2 番目の LinearLayout はツールバー)。

助言がありますか?xml ソリューションを好むでしょう。

4

3 に答える 3

7

ここでは RelativeLayout を使用して簡単に実行できます。

水平方向の配置

<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">  

  <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="something"
    />

  <TextView
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/image"
    android:layout_toRightOf="@+id/button" />

  <ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:background="@drawable/icon" />
</RelativeLayout>

垂直方向の配置

  <LinearLayout
    android:id="@+id/linear_top"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

  <ListView
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linear_top"
    android:layout_above="@+id/linear_bottom" />

  <LinearLayout
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" />
</RelativeLayout>
于 2012-08-03T06:19:38.483 に答える
3

layout_weightリストビューの2番目の要件の使用

<RelativeLayout ...>
   <LinearLayout 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent"
        android:layout_alignParentTop="true" />
   <ListView 
        android:layout_height ="0dp"
        android:layout_width="fill_parent" 
        android:layout_weight="1"
        android:layout_below="@+id/top_layout"
        android:layout_above="@+id/bottm_layout" />
   <LinearLayout 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent"   
        android:layout_alignParentBottom="true" />
</RelativeLayout>
于 2012-08-03T06:23:50.953 に答える
0

Stretch Columnが 1 のLinearLayout の代わりに TableLayout を試すことができます(Table LAyout の列は 0 を基数としてインデックスが付けられます)。

最初の列はボタンです。

2列目はテキストビューです。

3列目はあなたの画像です。

例についてグーグルで検索するか、TableLayoutを参照してください。

更新しました:

これをより明確に見ることができます:

<RelativeLayout>
     <!-- This is Header-->
     <LinearLayout
          .....
          android:layout_alignParentTop="true" >
     </LinearLayout>

     <!-- This is your table-->
     <TableLayout
          .....
          android:stretchColumns = 1>
          <TableRow>
               <Button>
                .....
               </Button>

               <TextView>
                .....
               </TextView>

               <ImageView>
                .....
               </ImageView>
          </TableRow>
     </TableLayout>

     <!-- This is Footer-->
     <LinearLayout
          ..... 
          android:layout_alignParentBottom="true" >
     </LinearLayout>
</RelativeLayout>
于 2012-08-03T06:46:50.850 に答える