2012-04-10 16 views
1

3つのボタンを持つカスタムダイアログがあり、ボタンが1つしかない場合もあります。私が3つのボタンを持っているとき、LinearLayoutはそれらのボタンによく合います。しかし、ボタンが1つしかない場合は、ボタン全体が1つのボタンで使用可能になり、そのボタンが大きすぎるように見えます。一つだけのボタンがあります場合、私は、それをしたい、それだけで利用できるの半分の完全な幅を取るべきか、コンテンツをラップする必要があります(ボタンの画像を。)reference-LinearLayoutのボタンの問題

3 buttons dialog

1 button dialog

+0

私はジェイソンが求めていると思うソース –

+0

を投稿してください:私たちが見ていると私はこの質問は、それが得たdownvoteに値するとは思わない有意義 –

+3

に答えることができるように、あなたのレイアウトのためのXMLを投稿してください。非常に有効かつ明確な質問です。はい、XMLを欲しいかもしれませんが、現在のレイアウト実装がなくてもいくつかの良い答えが得られると思います。あなたのdownvotes、人々とあまりにもトリガハッピーしないでください! – dbm

答えて

3

あなたの要件に似ているこのXMLファイルを参照してください。必要のないボタンに移動するだけの視認性。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" android:weightSum="3" android:gravity="center_horizontal"> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button"/> 


    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button"/> 

</LinearLayout> 
+0

ありがとうございます。出来た。 – Rajkiran

+0

また、すべてのボタンの幅を同じにするには、すべてのボタンで 'android:layout_width'属性を" 0dp "に設定する必要があります。 @Agarwalによって与えられた例のように、ボタンは最初にコンテンツをラップするときに幅を取得します(「連絡先」ボタンは「追加」ボタンよりも幅が広い)。残りの幅は3つのボタンに均等に分散されます。それらがすべてゼロ幅で始まっている場合、最終的なサイズの再配布後にはすべて同じ幅になります。私は本当にこれを説明する答えを見たと思ったが、明らかに私の目は私を騙している... – dbm

1

では、以下の画像を参照してください。親のLinearLayout

  • セットにweightSum =「2」:1つのボタンが

    1. セットのアンドロイドに必要な半分の利用可能な画面幅を取るようにするためandroid:layout_weight = "1"ボタン