2016-12-20 4 views
0

AndroidとiOSプロジェクトを持つXamarinフォームPCLプロジェクトを使用しています。リフレッシュコントロールがリフレッシュ後に隠れていない

iOS(iPhone 6 Plus)でプル・トゥ・リフレッシュを使用すると、リフレッシュ・コントロールが隠されません。リフレッシュコントロールの隠蔽はiPhone 6 Plusと7 Plusを除くすべてのiPhoneで動作しています。

ここに私のコードです。デザイン:

<ListView x:Name="listviewCompanies" 
    SeparatorVisibility="None" 
    RowHeight="210" 
    HasUnevenRows="false" 
    ItemTapped="OnItemTapped" 
    ItemSelected="OnItemSelected" 
    IsPullToRefreshEnabled="True"> 

    <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell> 
       <views:CompaniesListTemplate /> 
      </ViewCell> 
      </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

更新]コマンド:

listviewCompanies.RefreshCommand = new Command(() => 
{ 
    BindCompanyList(); 
    listviewCompanies.IsRefreshing = false; 
}); 

がどのように私はすべてのiPhone上のリフレッシュコントロールを非表示にできますか?

答えて

0
private bool _isListRefreshing; 
/// <summary> 
/// List of Messages, to be bound to the view 
/// </summary> 
public bool IsListRefreshing 
{ 
get { return _isListRefreshing; } 
set { Set(() => IsListRefreshing, ref _isListRefreshing, value); } 
} 

IsRefreshingPropertyを使用してリストビューとバインドする

_listListView.SetBinding(ListView.IsRefreshingProperty, "IsListRefreshing"); 

IsListRefreshing = true; 
//refresh code 
IsListRefreshing = false; 

あなたのリフレッシュ方法では、IsListRefreshingフラグを設定します。これはリフレッシュ完了後も適切な承認を得ています

0

次のコードは、このコードを参照し、リストビューのために、この

ページのコードのように実装しようと私のマシンに取り組んでいる: -

PullToRefreshCommandため
var _listListView = new ListView 
     { 
      BackgroundColor = Color.Transparent, 
      SeparatorVisibility = SeparatorVisibility.None, 
      HasUnevenRows = true, 
      IsPullToRefreshEnabled = true, 
     }; 
     _listListView.SetBinding(ListView.ItemsSourceProperty, "ItemSource"); 
     _listListView.ItemTemplate = new DataTemplate(typeof(listviewCell)); 
     _listListView.RefreshCommand = new Command(async() => 
     { 
      await _viewModel.PullToRefreshCommand.ExecuteAsync(); 
      _listListView.IsRefreshing = false; 
     }); 

のViewModelコード: -

/// <summary> 
    /// Pull to refresh 
    /// </summary> 
    private RelayAsyncCommand _pullToRefreshCommand; 
    public RelayAsyncCommand PullToRefreshCommand 
    { 
     get 
     { 
      return _pullToRefreshCommand ?? 
       (_pullToRefreshCommand = new RelayAsyncCommand(async() => 
       { 
        /*do Code to download data from server to local*/ 
        /*await RefreshCommand.ExecuteAsync();*/ 
       })); 
     } 
    } 
+2

csデザインの代わりにxamlコードでも使用できます – sumeet

+2

RelayAsyncCommand – sumeet

+0

ありがとうございます。私は_listListView.IsRefreshing = true; _listListView.IsRefreshing = falseを使用します。それは私のために働く –

関連する問題