2012-02-28 9 views
0

©には線形レイアウトに関する問題があります。私は何かが奇妙だと思います。レイアウトは同じですが、バックボタンは関連するアイコンを動かしています。左側のボタンを戻したい、btn_header_what_search_userボタンを右側のサイトに入れたいです。しかし、関連するアイコン(センターアイコン)を動かしています。どのようにして左のボタンに戻ることができますか?線形重力の問題?

enter image description here

私のコード: `

<LinearLayout android:layout_height="44dip" 
       android:layout_width="320dip" 
       android:background="@drawable/header_320_44dip"> 
    <ImageView 
      android:layout_width="121dip" 
      android:layout_height="32dip" 
      android:layout_gravity="center" 
      android:layout_marginLeft="90dip" 
      android:background="@drawable/icon"> 

    </ImageView> 

    <ImageView 
      android:layout_width="52dip" 
      android:layout_height="32dip" 
      android:layout_gravity="left" 
      android:background="@drawable/btn_back_52x32"> 

    </ImageView> 


    <ImageButton 
      android:layout_height="34dip" 
      android:layout_width="64dip" 
      android:id="@+id/btn_header_what_search_user" 
      android:layout_marginLeft="0dip" 
      android:background="@drawable/btn_nedit_nontext_64x34"> 
    </ImageButton> 
</LinearLayout> 

`

答えて

2

LinearLayoutはそれがメインだ方向に沿って重力でうまく動作しない(つまり、水平方向のLinearLayoutにはありませんleft、rightまたはcenter_horizo​​ntal、vertical top、bottomまたはcenter_vertical)をサポートしています。
代わりにRelativeLayoutを試して、正しい結果を得るためにlayout_alignParentLeft/layout_alignParentRightの属性(またはその他の利用可能な属性)を使用することができます。

+0

私はいつでも私は線形レイアウトを使用することはできませんか?私は線形レイアウトでどのように私はできますか?私の最後の質問はなぜアイテムが追加される前に関連しているのですか?それは普通ですか?私は0,0ポイントを動かすことを考えていたのですか? – DuyguK

+0

LinearLayoutのアイテムは、左から右、上から下へ順番に追加されます。なぜあなたのレイアウト内のアイテムの配置が妨げられたのか? – Maneesh

+0

異なる 'align'属性は' RelativeLayout'にユニークです。つまり 'LinearLayout'でそれらを使うことはできません。 「RelativeLayout」は、「toLeftOf」、「toRightOf」、「above」、および「below」の属性も持ちます。これらの属性を使用して、ビューを相互に関連付けることができます。 LinearLayoutでは、追加された各ビューはxmlに表示される順番で表示されます。つまり、アイコンが戻るボタンの前に表示され、その前に配置されます。 – Jave

3

あなたは別の解決策は、レイアウトの重みを使用するかもしれません

<RelativeLayout android:layout_height="44dip" 
       android:layout_width="320dip" 
       android:background="@drawable/header_320_44dip"> 
    <ImageView 
      android:layout_width="121dip" 
      android:layout_height="32dip" 
      android:layout_centerInParent="true" 
      android:layout_marginLeft="90dip" 
      android:background="@drawable/icon"> 

    </ImageView> 

    <ImageView 
      android:layout_width="52dip" 
      android:layout_height="32dip" 
      android:layout_alignParentLeft="true" 
      android:background="@drawable/btn_back_52x32"> 

    </ImageView> 


    <ImageButton 
      android:layout_height="34dip" 
      android:layout_width="64dip" 
      android:id="@+id/btn_header_what_search_user" 
      android:layout_marginLeft="0dip" 
android:layout_alignParentright="true" 
      android:background="@drawable/btn_nedit_nontext_64x34"> 
    </ImageButton> 
</RelativeLayout> 
0

相対的なレイアウトを使用する必要があります。総重量を3に設定し、それぞれの画像ビューに対して1の重みを設定します。このようにレイアウトは3つのパートに分割され、各パートの重力を調整することができます。何かのように:

<LinearLayout 
    ... 
    android:weightSum="3" > 

    <ImageView 
     ... 
     android:layout_width="0dp" 
     android:layout_weight="1" /> 
+0

体重は何ですか?私はこれを使用している画面のパーセントにしたいと思っていた? – DuyguK

+0

重量を使用すると、使用する要因に応じてレイアウトを動的に分割できます。異なる因子を使用する別の例、例えば。 weightSum = "10"、imageView = 5、2つのtextviews = 2です。 layout_widthを常に0dpに設定することを忘れないでください。それ以外の場合は動作しません。 – ramdroid

関連する問題