2014-10-06 67 views
3

我使用MvvmCross開發了Android應用程序。有一部分應該顯示ImageView或MvxImageView。當我在調試模式下測試它工作正常,但是當我將其更改爲釋放模式時,可見性轉換器似乎停止工作。所有其他轉換器都按照它們的方式工作,只有那些轉換器停止工作。Custom Visibility Converter - Android - Release(MvvmCross)

從我的XML格式的簡歷:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:orientation="vertical"> 
    <ImageView 
     android:layout_width="120dp" 
     android:layout_height="120dp" 
     android:scaleType="fitCenter" 
     local:MvxBind="Visibility MyObject, Converter=ByteInverseVisibility; AssetImagePath MyObject, Converter=AttachmentTypeToSource" /> 
    <Mvx.MvxImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:maxHeight="150dp" 
     android:adjustViewBounds="true" 
     local:MvxBind="Visibility MyObject, Converter=ByteVisibility; Bitmap MyObject.Attachment, Converter=InMemoryImage" /> 
</LinearLayout> 

轉換器:

public class ByteVisibilityConverter : MvxBaseVisibilityValueConverter<MyObjectClass> 
{ 
    protected override MvxVisibility Convert(MyObjectClass value, object parameter, CultureInfo culture) 
    { 
     if (value.AttachType == AttachmentType.Photo && value.Attachment != null) 
     { 
      return MvxVisibility.Visible; 
     } 

     return MvxVisibility.Collapsed; 
    } 
} 

public class ByteInverseVisibilityConverter : MvxBaseVisibilityValueConverter<MyObjectClass> 
{ 
    protected override MvxVisibility Convert(MyObjectClassvalue, object parameter, CultureInfo culture) 
    { 
     if (value.AttachType != AttachmentType.Photo || value.Attachment == null) 
     { 
      return MvxVisibility.Visible; 
     } 

     return MvxVisibility.Collapsed; 
    } 
} 

回答

4

的原因是因爲不被包含在包裝的可見性屬性。

你得添加類似:

public void Include(ImageView imageView) 
    { 
     imageView.Visibility = imageView.imageView; 
    } 

在你LinkerPleaseInclude.cs文件。

+0

嗨我有一個類似的問題,不幸的是這似乎並不適用於我或我做錯了。你能幫我解決嗎?這裏是我的問題的鏈接http://stackoverflow.com/questions/27252009/mvvmcross-android-linking-issue-on-visibility-converter – rideintothesun 2014-12-02 20:01:10

+0

在我的情況下,對於TextView,它沒有工作,直到我加入這個: text.Visibility = ViewStates.Visible; text.Visibility = text.Visibility + 1; – xleon 2015-04-19 18:49:11