2016-07-13 2 views
1

私は画面の下部に4つのボタンと中央のスペースを持つレイアウトを持っています。その上にFABが表示されるスペースがありますが、レイアウトが隠れている場合は、中央のスペースを0dpに縮小して、4つのボタンが画面全体に均等に広がるようにしたいと考えています。ボタンをプログラム的に縮小し、それに応じてレイアウトの残りの部分を再配置するにはどうすればいいですか?

ViewPropertyAnimatorを使って幅を0にスケーリングしようとしましたが、機能しません。

4つのボタンの中央のスペースをプログラム的に(理想的にはアニメーションで)縮小し、4つのボタンのサイズを変更してスペースのサイズに応じて移動するにはどうすればよいですか?

私が使用しているレイアウトのコードは次のとおりです。

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:background="@drawable/background" 
    android:orientation="horizontal"> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:background="@drawable/button_background" /> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:background="@drawable/button_background" /> 

    <Space 
     android:id="@+id/space" 
     android:layout_width="100dp" 
     android:layout_height="match_parent" /> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:background="@drawable/button_background" /> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:background="@drawable/button_background" /> 
</LinearLayout> 

答えて

1

設定し、それは消えてい

<Space 
    android:id="@+id/space" 
    android:layout_width="100dp" 
    android:layout_height="match_parent" 
    android:visibility="gone" /> 

に可視性だとシンプルなアニメーションの方法は、それがレイアウトXMLのルートタグに次の行を追加しますファイル:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:background="@drawable/background" 
    android:orientation="horizontal"  
    android:animateLayoutChanges="true"> 
+0

私は決してこのエレガントなソリューションを期待していませんでした。それは完璧に動作します、ありがとう! – Quorrin

+0

ようこそ。 –

関連する問題