2017-03-13 18 views
0

xamarinのAndroidではボタンを隠すために"Visibility.Gone;"があります。 XamarinフォームにはIsVisible="{Binding State}"がありますが、これは表示が見えなくなり、スペースがそこに残ります。私はボタンを消したいと思います

私に解決策を教えてください。あなたは次のようなものを持っている必要があり、あなたのビューモデルで よろしく

+0

ベストソリューションはxamlではなくc#コードを使用することです。 xamarinフォームにwpfのような折りたたまれたオプションがまだありません – batmaci

+2

これは正しくありません!私はこれを試しました、あなたがグリッドを使用していて、行と列をボタンに割り当てているのであれば、それは可能ですが、それはスペースを保持するグリッドセルです。 –

+0

あなたのxamlを共有してください。あなたは何かが間違っているようです。 – Daniel

答えて

0

:Xamarinのドキュメントによると

public bool State{ 
    get { 
     return _state; 
    } 
    set { 
     _state= value; 
     RaisePropertyChanged ("State"); 
    } 
} 

here要素は、ビジュアルツリーから削除し、任意のスペースを取りませんする必要がありました。

編集:
私はあなたのグリッドの列=「5」を設定しているかどうかはわかりません。列を含むGridの属性はありません。しかし、私は次のコードで探している効果を作り出すことができます。

<Grid BackgroundColor="Gray"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="50" /> 
     </Grid.RowDefinitions> 
     <Grid.Padding> 
      <OnPlatform x:TypeArguments="Thickness" iOS="0,-3,-20,-3" Android="0, -5, 0, -5" WinPhone="20, 20, 20, 20" /> 
     </Grid.Padding> 
     <BoxView Color="Blue" Grid.Column="0"></BoxView> 
     <BoxView Color="Green" Grid.Column="1" IsVisible="{Binding State}"></BoxView> 
     <BoxView Color="Blue" Grid.Column="2"></BoxView> 
     <BoxView Color="Green" Grid.Column="3"></BoxView> 
    </Grid> 

詳細:
あなたはそのグリッドにfalseにラベルの可視性を設定するには正しいが、グリッド内のコントロールに割り当てられたスペースを維持します。できることは、グリッドを<ColumnDefinition Width="Auto" />または<RowDefinition Height="Auto" />に設定し、その列または行にラベルを貼り付けます。可視性がfalseに設定されている場合、コントロールに割り当てられた領域が自動的に削除されます。以下は、取得しているエフェクトのスクリーンショット(左)と、の定義からの自動(右)の設定後の効果です。 enter image description here

+0

はい、私の質問は私のボタンを "消える" "Gone"と "Invisible"の大きな違いです。 違いについては、下のリンクをご確認ください http://stackoverflow.com/questions/11556607/android-difference-between-invisible-and-gone –

+0

あなたは正しいです。私はこの問題を誤解しました。どのタイプのレイアウトに、 "Gone?"しようとしている要素が含まれていますか?私はこの問題をいくつかの方法で解決しましたが、より直接的なソリューションを提供するためにどのレイアウトを使用しているかを知る必要があります。 –

+0

私はこれを使用しています、私はラベルを消したいです。\t <ラベルテキスト=" {バインディングの説明} "IsVisible =" {バインディング状態} "VerticalOptions ="センター "TextColor ="白 "フォント= "太字" FontSize = "9" VerticalTextAlignment = "センター" /> –

関連する問題