2016-09-22 14 views
-1

私は本当にこの問題の答えを見つけることができませんでした。のは、私はこれを持っているとしましょう:私はこれを正常に行うことができますアンドロイド:空き領域を塗りつぶす方法

image

。しかし、 "BUTTON2"の可視性がGONEに設定されている場合、可能な限りBUTTON1の幅を取るようにします。現在、ここに

image

を非稼働コードです::だから、それは次のようになります

<RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="10dp" 
      android:layout_gravity="center"> 

      <com.rey.material.widget.Button 
       android:id="@+id/button2" 
       style="@style/Material.Drawable.Ripple.Wave.Light" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:onClick="goToOccasion" 
       android:padding="20dp" 
       android:text="@string/join" 
       app:rd_enable="true" 
       app:rd_rippleColor="@android:color/darker_gray" 
       app:rd_rippleType="wave" 
       android:gravity="center" 
       android:layout_alignParentTop="true" 
       android:layout_toEndOf="@+id/joinOccasionBTN" 
       android:layout_marginStart="87dp" 
       android:layout_alignBottom="@+id/joinOccasionBTN" /> 

      <com.rey.material.widget.Button 
       android:id="@+id/joinOccasionBTN" 
       style="@style/Material.Drawable.Ripple.Wave.Light" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:onClick="goToOccasion" 
       android:padding="20dp" 
       android:text="@string/join" 
       app:rd_enable="true" 
       app:rd_rippleColor="@android:color/darker_gray" 
       app:rd_rippleType="wave" 
       android:gravity="center" 
       android:layout_alignParentTop="true" 
       android:layout_alignParentStart="true" /> 
     </RelativeLayout> 

この中で結果:

image

button2をは、visibleときと上記の写真と同じですが、button2( "JOIN")はありません。

+0

なぜダウンボントを取得したのですか?これは、大規模な聴衆に適用される便利な非ローカライズされた質問です –

答えて

2

これを行う簡単な方法は、LinearLayoutandroid:layout_weight属性を使用することです。あなたのいずれかのボタンがvisiblegoneへの可視性を変更した場合

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:layout_margin="10dp" 
     android:layout_gravity="center"> 

    <com.rey.material.widget.Button 
     android:layout_width=0dp 
     android:layout_height="wrap_content" 
     android:layout_weight=1 
     ... 
     /> 

    <com.rey.material.widget.Button 
     android:layout_width=0dp 
     android:layout_height="wrap_content" 
     android:layout_weight=1 
     ... 
     /> 

</LinearLayout> 

この方法では、その後、他のボタンは、残りのスペースを埋めます。

+0

私の質問が役に立ちましたら、サポートを表示するためにアップしてください –

+0

すでにそれを行いました。 –

1

relativeLayoutの代わりに、gridViewを使用してボタンを追加します。 列に設定すると、ボタンはすべての場所で使用されます。

<GridView 
    android:layout_width="match_parent" 
    android:numColumns="2" 
    android:layout_height="match_parent"> 
    <Button 
     android:id="@+id/button1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
    <Button 
     android:id="@+id/button2" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</GridView> 

1列:これは役立ちます願って

<GridView 
    android:layout_width="match_parent" 
    android:numColumns="1" 
    android:layout_height="match_parent"> 
    <Button 
     android:id="@+id/button1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
    <Button 
     android:id="@+id/button2" 
     android:visibility:"gone" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</GridView> 

あなたは2つの列を設定している場合 、GridViewのは... 2つの完璧なサイズの列に自動的に

2つの列をビューに適応します。

+0

例を加えて答えを詳述してください。自分のためではなく(*私はそれを理解した*)、将来の読者のために。それから私はdownvoteを削除します –

+0

そしてそれは動作しません。だから私は-1を残している、残念。 –

+0

それは働く、ちょうど私達にあなたの手の完全なケーキを与えるのを待つ。 – McflyDroid

関連する問題