Проблем с MvvmCross Android свързване на Visibility Converter

Знам, че има проблеми със свързването с Android и знам за използването на LinkerPleaseInclude. Въпреки това не съм сигурен какво да поставя във файла LinkerPleaseInclude.cs за проблема, който виждам.

Имам изглед, който използва преобразувателя на видимост, за да използва булево свойство IsBusy, за да определи дали определен брой контроли трябва да се показват или не. Използвам ProgressBar, TextView и ImageView. Опитах редица комбинации, за да коригирам проблема с линкера.

Когато се внедри като отстраняване на грешки, всичко работи, това е просто проблем с изданието.

Така например моят прогресбар е дефиниран по следния начин (конверторът за видимост се използва по същия начин за другите контроли)

<ProgressBar
        android:id="@+id/pbHeaderProgress"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_centerInParent="true"
        local:MvxBind="Visibility Visibility(IsBusy)" />

Добавих следното към моя LinkerPleaseInclude.cs. Не съм включил целия файл за краткост

    public void Include(ProgressBar progressBar)
    {
        progressBar.Visibility = ViewStates.Invisible;
    }

    public void Include(TextView textView)
    {
        textView.TextChanged += (sender, args) => textView.Text = "" + textView.Text;
        textView.Hint = "" + textView.Hint; 
        textView.Visibility = ViewStates.Invisible;
    }

    public void Include(ImageView imageView)
    {
        imageView.Visibility = ViewStates.Invisible;
        imageView.Visibility = ViewStates.Visible;
        imageView.Visibility = ViewStates.Gone;
    }

    public void Include(MyViewModel viewModel)
    {
        viewModel.PropertyChanged += (sender, args) => { };
    }

    public void Include(MvxVisibilityValueConverter converter)
    {
        converter.Convert(null, null, null, null);
    }

Нито едно от тях не изглежда да работи. Може ли някой да ми помогне с това и да ме уведоми какво трябва да сложа, за да накарам Visibility да работи


person rideintothesun    schedule 02.12.2014    source източник
comment
Всъщност не сте посочили проблема, който виждате. Какво се случва? Вашият ProgressBar не се показва? Има ли нещо полезно във вашите регистрационни файлове?   -  person PkL728    schedule 05.12.2014
comment
Това е странно, добавих отговора, сега той изглежда е изчезнал   -  person rideintothesun    schedule 06.12.2014
comment
не разбрах проблема..   -  person Gabriel Bastos    schedule 08.12.2014


Отговори (1)


Проблемът беше, че когато създавате версия на версия на Android приложение, понякога установявате, че някои от поведението не работят. Това се дължи на начина, по който свързва програмата. Вярвах, че оптимизира по начин, който премахва кода, който смята, че не използва. За да го коригирате в базирано на MvvmCross приложение, трябва да добавите извикванията към кода, който смятате, че е оптимизиран. Това става чрез използване на файла LinkerPleaseInclude.cs и добавяне на извиквания към „липсващия“ код. В този случай видимостта на контрола ProgressBar не работи. Бях се опитал да добавя код към файла LinkerPleaseInclude.cs, но не работеше. Намерих решението и добавих като отговор.

Поставих следния код в LinkerPleaseInclude.cs. Мисля, че работи, защото използва и сетера, и гетера

public void Include(ProgressBar ProgressBar)
{
   progressBar.Visibility = !progressBar.Visibility;
}
person rideintothesun    schedule 06.12.2014