0
我正在開發使用MVVMCross的Android應用程序。我在AXML上使用progressbar標記,並在應用程序具有後臺活動時停止動畫。我猜是因爲我用錯誤的方式使用同步任務,但我沒有找到解決方法。Android應用程序使用mvvmcross的活動指示器
,我使用的進度標籤:
<LinearLayout
android:orientation="vertical"
android:background="#88000000"
android:layout_alignParentTop="true"
local:MvxBind="Visibility Visibility(IsLoading)"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical|center_horizontal">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:id="@+id/progressBar1"
android:layout_marginTop="@dimen/element_margin_large"
android:layout_marginBottom="@dimen/element_margin_large" />
</LinearLayout>
我試圖改變IsLoading
到true
,以保持它可見的所有時間,和動畫停止每次應用程序做任何返回處理。
編輯:我試過視圖模型的代碼是這樣的:
private MvxCommand _xxxCommand;
public ICommand XxxCommand
{
get
{
_xxxCommand = _xxxCommand ?? new MvxCommand(XxxCmd);
return _xxxCommand;
}
}
public async void XxxCmd()
{
IsLoading = true;
await Task.Run(() =>
{
ShowViewModel<XxxViewModel>();
});
IsLoading = false;
}
但它一直在執行ShowViewModel
凍結。在下一個視圖中,我有一些綁定和調用外部API
,但所有這些都是async
和awaited
謝謝您的關注。
Debbuging the app我發現我當程序執行'ShowViewModel <...>();'當動畫停止時。我嘗試用'等待Task.Run(()=> {(...)};''封裝它''但仍然凍結 – JCQuiroga
在Init或Start或構造函數中,你在顯示的ViewModel中做什麼? – Cheesebaron
在構造函數,我初始化了兩個服務的兩個接口,我調用了兩個異步方法 – JCQuiroga