2016-11-14 6 views
1

残りのスペースを取るネストされたフラグメントがありたいと思います。問題は、高さが1ピクセルなので表示されないことです。高さを300dpに設定すると、すべてが正常に見えます。ここに私のコードです。たぶん、レイアウトは、他の2つのレイアウトの高さが何であるかを計算することができません。:残りのスペースを埋めるネストされたフラグメント

  <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginTop="5dp" 
      android:orientation="vertical"> 

      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/white_with_divider_bg" 
       android:id="@+id/firstL"> 

      </RelativeLayout> 

      <RelativeLayout 
       android:id="@+id/secondL" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="5dp"> 

      </RelativeLayout> 

      <FrameLayout 
       android:id="@+id/child_fragment" 
       android:layout_height="0dip" 
       android:layout_width="match_parent" 
       android:layout_weight="1"/> 

     </LinearLayout> 

それは次のようになります。重みで作業する場合

enter image description here

+0

これらのネストされたレイアウトをすべて使用する代わりに(パフォーマンスやデザインが悪い)、1つのRelativeLayoutを使用できます。または、この場合は単一のLinearLayout(これも高速です)。 –

+0

レイアウトは複雑で、すべてのサブレイアウト内に多くのビューがあります。このため、メインロジックのみを示しています。 – charbinary

+0

あなたが示したところでは、1つのLLで十分です。より複雑な場合は、単一のRLを使用することを検討してください。 –

答えて

0

LiniearLayoutのすべての子どもたちが持っている必要があります体重は、それはあなたを助けるwouldnt。あなたはandroid:id = "@ + id/child_fragment"にheight = "match_parent"を設定し、その重さを削除する必要があります。

これでうまくいくはずです。

+0

私は試しましたが、それは同じです。 – charbinary

+0

Hmm。あなたが試すことができるもう一つの解決策は、LiniearLayoutをRelativeLayoutに置き換えて、子に与えることができる上記および以下のプロパティを使用することです。 – miqueloi

関連する問題