2013-01-08 9 views
7

アンドロイドのレイアウトはlayout_weightを使用します。私はすべてのコンポーネントの1/3を目指していますが、フッターが文字通り消えて表示されることがあります。去ってから目に見えるように設定すると、体重の計算はどのように機能しますか?私は1/3の重量を持っている線形レイアウトの中にコンテンツを見ていませんか?android:layout_weight = "33"どうすれば表示されますか?

+0

実際に誰かがこの質問に投票してください。 –

答えて

-1

あなたは0dpに高さを設定していることを確認し、ビューが自分の比率をいっぱいになります行って残りのビューに設定されているときに1

すなわち

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

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:text="Hello World, MyActivity" 
     android:background="#f00" 
     /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:text="Hello World, MyActivity" 
     android:background="#00f" 
     /> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:text="Hello World, MyActivity" 
     android:background="#0f0" 
     /> 
</LinearLayout> 

にすべてのビューに重みを設定画面のつまり、3つ目のビューを設定すると、最初の2つのビューはレイアウト内の使用可能なスペースの50%を占めます。

さらに、残りのビューはそれぞれ1/3のスペースしか必要としません。 )2/3を使用して、空の1/3を残しては消えていない目に見えないにあなたの隠されたビューを設定

レンダリングされるように変更するためにその重量を変更した後のビューにrefreshDrawableState()を呼び出すことが必要であると思わ
0

((LinearLayout.LayoutParams) btnFav.getLayoutParams()).weight = 3f; 
btnFav.refreshDrawableState(); 
関連する問題