2017-01-31 1 views
0

私のXamarinFormsプロジェクトでActivityIndi​​catorが異常に動作しています。インジケータはWinPhone81では完璧に読み込まれますが、レイアウトの途中では初めて読み込まれませんが、2回目から無限に完全に動作します。アクティビティインジケータがmiddileで表示されない - XamarinForms WinPhone81

をXAMLで::以下は、私が使用したコードは、CSで

<StackLayout x:Name="blueBar" Padding ="0,0,0,0" Orientation ="Vertical" 
HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" > 
</StackLayout> 

:そのはこのように振る舞う理由

ActivityIndicator loading = new ActivityIndicator(); 

    blueBar.Children.Add(loading); 
    loading.IsRunning = true; 
    //some functions 
    blueBar.Children.Remove(loading); 

は、任意のは知っていますか?!

提案/ガイド/ヘルプは高く評価されます.. !!

ありがとうございます。

Note: The ActivityIndicator works well and fine in Droid & iOS projects. 

出力:同一ページの

enter image description here

2.Second時間の実行:

私はページの

1.First時間の実行を経験していてenter image description here

Outpu T:あなたは真ん中にActivityIndicatorを調整するためにあなたのStackLayoutAbsoluteLayout最初の内側を配置する必要がありますようにそれはそうenter image description here

答えて

0

おかげで...

私は最後に私の質問の答えを考え出した...

ここで(すべての3つのプラットフォーム上)鉱山の作業コードです。

XAML:

<StackLayout x:Name="blueBar" Padding="0,0,0,0" Orientation="Vertical" VerticalOptions="FillAndExpand" > 
    <ActivityIndicator x:Name="loading" IsRunning="true"></ActivityIndicator> 
</StackLayout> 

CS:。

somebtn.Clicked += async(sender,e) => { 

    loading.IsVisible = true; 

    //some await functions like api call or something 

    loading.IsVisible = false; 
} 

実際の問題はあるが、インジケータは、前に)(のInitializeComponentによって割り当てられていないので、私はボタンのいずれかをクリックしたとき。初めて、レイアウトの左側にインジケータが表示されます。

しかし、今インジケータ()。のInitializeComponentによって初期化され、そのインジケータは、それ自体をクリックしてください最初のために途中で表示されています...クイックレスポンスの男のための

Note : This problem only occured on windowsphone only not on ios and android projects. 
     Now the updated code works well and good on all the three platforms. 
0

-Chandresh Khambhayataあたりとして。

これはlinkです。

まだ試したことはありませんが、それを達成するために多くのことをする必要があるようです。

希望すると助かります!

+0

感謝を..しかし、それはDroidとiOSでうまくいきます...あなたが共有したリンクは死んでいます...(あなたが共有しているリンクは機能していない、壊れています) – Senthamizh

+0

おそらく、 'https'すでに編集しています。もう一度それをチェックしてください:) – mindOfAi

+0

そのリンクは役に立つ人でしたが、私はそのインジケータで画面をオーバーレイしたくありません...それは単にレイアウトにインジケータを追加して、しばらくしてから削除します。 。 – Senthamizh

0

あなたが画面の中央にActivityIndi​​catorを表示したい場合、あなたはほとんどが、私は以下のXMLコードを使用していますが、それは私のために完璧な作業だHorizontalOptions="Center"VerticalOptions="Center"

を適用する必要があります。

<StackLayout VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand"> 
    <ActivityIndicator Color="White" HorizontalOptions="Center" VerticalOptions="Center" /> 
    <Label Grid.Row="1" x:Name="LabelLoading" HorizontalOptions="Center" TextColor="White" Text="Loading..." FontFamily="Droid Sans Mono" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" /> 
</StackLayout> 

これは、プログラムで動作インジケータを設定しています。

ActivityIndicator activityIndecator = new ActivityIndicator(); 
activityIndecator.Color = Color.White; 
activityIndecator.HorizontalOptions = LayoutOptions.Center; 
activityIndecator.VerticalOptions = LayoutOptions.Center; 
blueBar.Children.Remove(activityIndecator); 

ありがとうございます。みんな私を助けるため

+0

これはうまくいくはずです。しかし、これがプログラムで行われると、私は本当に分かりません。 – mindOfAi

+0

私はあなたのコメントごとに答えを更新しました。 –

+0

あなたの貴重な時間のおかげでありがとう...しかし、運が私のために...私は上記のコードの出力を私の質問の画像として追加します。どうぞご覧ください... – Senthamizh

関連する問題