2016-12-20 1 views
0

Android 및 iOS 프로젝트가있는 Xamarin forms 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; 
}); 

어떻게 모든 아이폰에서 재생 컨트롤을 숨길 수 있습니까?

답변

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; 

및 refresh 메소드에서 IsListRefreshing 플래그를 설정하십시오. 이것은 새로 고침을 마쳤을 때 좋은 approch hidding입니다.

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; 
     }); 

뷰 모델 번호 : -

/// <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; 그때 그것은 나를 위해 일한다 –

관련 문제