2016-04-13 15 views
2

Şu anda iki görüntü düğüme sahip olduğum şu axml ürününe sahibim, ancak yalnızca bir seferde bir tane göstermek ve bir geçiş değiştirme özelliği uygulamak istiyorum. Bir kullanıcı button1'u tıklattığında, button1'u gizler ve button2 gösterecektir ve tam tersi. MVVMCross desen kullanıyorum.MVVMCross'ta ImageButton'un Görünürlüğü

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="40dp" 
    android:paddingLeft="20dp" 
    android:paddingRight="20dp"> 
    <ImageButton 
     android:id="@+id/myBtn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_arrow_back" /> 
    <ImageButton 
     android:id="@+id/myBtn2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_arrow_white" /> 
</RelativeLayout> 

cevap

5

Ben Visibility Plugin

(Nuget onu ekleyin) kullanmak istiyorsunuz Sonra ekleyin:

private bool _boolInViewModel; 
    public bool BoolInViewModel 
    { 
     get { return _boolInViewModel; } 
     set { _boolInViewModel = value; RaisePropertyChanged(() => BoolInViewModel);} 
    } 

    public IMvxCommand CommandToSwitchBool 
    { 
     get 
     { 
      return new MvxCommand(()=> 
       { 
        BoolInViewModel = !BoolInViewModel; 
       } 
      ); 
     } 
    } 

ve sonra Bağlanan: bool mülkiyet ve bir komut ViewModel bool geçmek için görünürlük dönüştürücüsü ve ters görünürlük ile boole dönüştürmek ve düğmelerdeki tıklama olayının komutunu şu şekilde değiştirebilirsiniz:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="40dp" 
    android:paddingLeft="20dp" 
    android:paddingRight="20dp"> 
    <ImageButton 
     android:id="@+id/myBtn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_arrow_back" 
     app:MvxBind="Visibility Visibility(BoolInViewModel); Click CommandToSwitchBool"/> 
    <ImageButton 
     android:id="@+id/myBtn2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_arrow_white" 
     app:MvxBind="Visibility InvertedVisibility(BoolInViewModel); Click CommandToSwitchBool"/> 
</RelativeLayout> 
+0

Çok teşekkürler, kusursuz çalıştı. InvertedVisibility' özelliğini bilmek güzel! – hotspring

+1

Evet, yapabileceği pek çok harika şey var. Listede bir listeye sayım yapmak için "görünürde öğe yok" görünümlerini görmek gibi. Kredi, eklentiyi burada yapanlara gerçekten gider. Https://github.com/MvvmCross/MvvmCross-Plugins/tree/master/Visibility –

İlgili konular