2012-03-14 29 views
1

私はレイアウトを持っていて、残りの部分をウェイトで塗りつぶしています。 Listviewは完全に機能します。レイアウト内のネストされたウェイト

最後の2つのボタンは、私が意図した通りに動作しますが、「ネストされた重みはパフォーマンスに悪い」という警告が表示されます。

リストビューを削除すると警告が消えてしまったので、私は既にリストビューの重みパラメータを使用していたので、問題だと思います。

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <ListView 
      android:id="@+id/listMessages_messages" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_marginBottom="5dip" 
      android:layout_marginLeft="10dip" 
      android:layout_marginRight="10dip" 
      android:layout_marginTop="10dip" 
      android:layout_weight="1" 
      android:background="#000000" > 
     </ListView> 

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

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="0dp" 
       android:layout_weight="50" 
       android:visibility="invisible" /> 

      <Button 
       android:id="@+id/btnNewConversation_message" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="5dip" 
       android:layout_weight="50" 
       android:onClick="newConversation" 
       android:text="@string/NewConversation" /> 
     </LinearLayout> 

    </LinearLayout> 
+0

これで何が欲しいのですか? –

+0

私は何が間違っていたのか知​​りたいです。 a.k.a.警告の原因私はこれをソリューションの近くにある私のアプリケーション –

答えて

1

チェックこれを必要とするものである.Hopeことを、このレイアウトの場所でと0PX する子レイアウトlayout_heightの子レイアウトにlayout_weightとして、残りの重量(リストビューのすなわち10重量) を与える子リニアレイアウトを作成コード。イムは、あなたが適切とボタンの横divisonのためにそれらを調整するために重み性を付与する必要が 1.Listビュー 2.Linearレイアウト(二ボタン) はまた、いくつかを与える両方のビューを配置したよう

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:weightSum="10"> 
    <ListView android:id="@+id/listMessages_messages" 
     android:layout_width="fill_parent" android:layout_height="0px" 
     android:layout_marginBottom="5dip" android:layout_marginLeft="10dip" 
     android:layout_marginRight="10dip" android:layout_marginTop="10dip" 
     android:layout_weight="8" android:background="#000000"> 
    </ListView> 
    <LinearLayout android:layout_width="fill_parent" 
     android:layout_height="0px" android:orientation="horizontal" 
     android:weightSum="10" android:layout_weight="2"> 
     <Button android:layout_width="0px" 
      android:layout_height="wrap_content" android:layout_weight="5" 
      /> 
     <Button android:id="@+id/btnNewConversation_message" 
      android:layout_width="0px" android:layout_height="wrap_content" 
      android:layout_marginRight="5dip" android:layout_weight="5" 
      android:onClick="newConversation" /> 
    </LinearLayout> 
</LinearLayout> 

警告ばかりではありません2番目の線形レイアウトへのウェイト和プロパティは、ウェイトを使用して等しく分割します。 2番目の線形レイアウト内のノート私はボタンの幅を0pxにしました

+0

答えをありがとう、私はあなたの以前の応答でweightsumとは何を意味するのか分かりませんでした。今私は自分のアプリケーションで作業することができます。 –

+1

そのコードで警告が表示されない場合は、IDEが誤って設定されています。ネストされたウェイトは、ネストされたものとまったく同じです。ウェイトを追加するだけで、それらを考慮してその事実は変わりません。また、fill_parentを使用する必要があるときに、なぜそれらの0pxの幅/高さの値を使用しているのかわかりません。そこには何がありますか? –

+0

@Justin Buser - ネストされたウェイトのシンプルな実例を提供してください。彼らは私のために働いていません。ありがとう。 – samosaris

0

私は次のゾルで正しくあなたの質問を理解している場合:トップレイアウトで (たとえば、いくつかの10) では0PX に設定してくださいレイアウトの高さプロパティを作る5または6 のようなリストビューにいくつかの重量を与えます二つのボタンは、これはあなたが

+0

の複数の場所で使用したいが、完全ではないからです。私の見解では、リストビューと重量に関するボタンとの間の接続はありません。リストビューの重みは、画面の残りの部分を縦方向(高さ)に塗りつぶし、ボタンの両方は画面の半分を水平方向(幅)で埋める必要があります。 –

+0

つまり、Listviewのウェイトは外側の線形レイアウトのみであり、ボタンのウェイトは内側にある線形レイアウトのため、リストビューとのやりとりは必要ありません。 –

+4

あなたは真剣に彼が何を言おうとしているのか理解していますか?私はそれを5回読んだが、頭や尾を作ることはできない。 –

関連する問題