2009-07-24 24 views
69

ビデオタイトルとタグを表示するためのダイアログを作成したいと思います。以下のテキストでは、ビュー、編集、削除ボタンを追加して、これらの要素を同じサイズにしたいと考えています。 LinearViewの内部で要素を同じサイズにするために.xmlレイアウトファイルを変更する方法を知っている人はいますか?Android:LinearLayout内のすべての要素を同じサイズにするにはどうすればよいですか?

現在のレイアウトファイルには、次のようになります。誰もが貼り付けられたファイルの内容を変更することで解決策を示すことができる場合、私は感謝

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

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

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/txtTitle" android:text="[Title]" > 
      </TextView> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/txtTags"    
       android:text="[Tags]" > 
      </TextView> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/btnPlay" 
      android:text="View"> 
     </Button> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/btnEdit" 
      android:text="Edit"> 
     </Button> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/btnDelete" 
      android:text="Delete"> 
     </Button> 

    </LinearLayout> 

</LinearLayout> 

ありがとうございます!

答えて

148

3つのButtonに対してandroid:layout_width="0px"android:layout_weight="1"を使用してください。つまり、ボタンは0ピクセルを超えないようにする必要がありますが、3つのボタンはそれらの間に余分なスペースを分割する必要があります。それはあなたが望む視覚効果を与えるはずです。

+4

_REALLY_が必要な場合は、android:stretchColumns = "0,1,2"のTableLayoutを使用することもできます。 –

+0

すごく...これは、幅を0pxにすると、重さが設定を上書きするということですか?それはなぜそうですか? – noob

+0

これは完璧に機能しました。 – Proverbio

28

android:layout_width="fill_parent"android:layout_weight="1"これはまたうまく動作します!

+13

あなたは本当にこの答えに興奮していました。 :-)熱狂を愛する! –

+0

CommonsWareのソリューションは私のためには機能しませんでしたが、これはそれでした! :)私はあなたが "fill_parent"よりもそれを好むべきだと聞いて以来、私は "match_parent"を使用しましたが、どちらも動作します。 – codepleb

1

あなたの問題を解決すると思うEqualSpaceLayoutを書きました。これはLinearLayoutに似ていますが、子ビューのサイズを歪ませません。確認してください:http://www.dev-smart.com/archives/225

16

LinearLayoutをご希望の場合はweightSumに、layout_weightの要素を作成してください。ここでは例がある...

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:weightSum="5"> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:src="@drawable/ic_share_white_36dp"/> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:src="@drawable/ic_search_white_36dp"/> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:src="@drawable/ic_event_note_white_36dp"/> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:src="@drawable/ic_brush_white_36dp"/> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:src="@drawable/ic_menu_white_36dp"/> 
</LinearLayout> 

だから、すべての要素の重量合計がGoogle Material Designアイコンが使用されている

enter image description here

なお、ここで... 5.でスクリーンショットです。これが参考になることを願っています。

関連する問題