2014-07-18 73 views
1

我在Xamarin.Android上有應用程序,我在其中使用了PullToRefresharp。它適用於PC上的模擬器,但它不適用於任何設備。當我試圖用此組件啓動佈局時 - 佈局根本不加載。PullToRefresharp在設備上不起作用

<pulltorefresharp.android.views.ViewWrapper 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
      <pulltorefresharp.android.widget.ScrollView 
       android:id="@+id/textAreaScroller" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_x="0px" 
       android:layout_y="25px" 
       android:scrollbars="vertical"> 
       <LinearLayout 
        android:minWidth="25px" 
        android:minHeight="25px" 
        android:orientation="vertical" 
        android:background="#E6E7E8" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:id="@+id/linearLayout1"> 
        <TableLayout 
         android:minWidth="25px" 
         android:minHeight="25px" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:id="@+id/archive_table" /> 
       </LinearLayout> 
      </pulltorefresharp.android.widget.ScrollView> 
     </pulltorefresharp.android.views.ViewWrapper> 

後面的代碼:

scrollView = FindViewById<PullToRefresharp.Android.Widget.ScrollView>(Resource.Id.textAreaScroller); 
       if (scrollView != null) { 
        scrollView.RefreshActivated += HandleRefreshActivated; 
       } 

private void HandleRefreshActivated (object sender, EventArgs e) 
     {   
      scrollView.OnRefreshCompleted(); 
     } 

可能是我設置didin't任何財產。我希望有人能幫助我。

回答

2

我建議你在這裏使用了Android V4控制一個很簡單的例子來使用它

首先添加了Android支持V4組件

XML實現

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:minWidth="25px" 
    android:minHeight="25px"> 
    <android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/swipe1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <ListView 
      android:minWidth="25px" 
      android:minHeight="25px" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/listView1" /> 
    </android.support.v4.widget.SwipeRefreshLayout> 
</LinearLayout> 

代碼實現

ListView listView = null; 
     SwipeRefreshLayout swipe = null; 

     protected override void OnCreate (Bundle bundle) 
     { 
      base.OnCreate (bundle); 

      // Set our view from the "main" layout resource 
      SetContentView (Resource.Layout.Main); 

      listView = FindViewById<ListView> (Resource.Id.listView1); 
      swipe = FindViewById<SwipeRefreshLayout> (Resource.Id.swipe1); 

      swipe.Refresh += (sender, e) => { 
       swipe1.Refreshing = false; 
       ReloadDataMethod(); 
      }; 

      swipe.SetColorScheme (Android.Resource.Color.HoloBlueBright, 
       Android.Resource.Color.HoloGreenLight, 
       Android.Resource.Color.HoloOrangeLight, 
       Android.Resource.Color.HoloRedLight); 
     } 

它的一個非常簡單的實現方法 希望它可以幫助你,如果你有任何問題隨時問我

+0

也許你可以解釋爲什麼你的代碼工作,他沒有,或者他的代碼丟失。 –

+2

我更喜歡使用原生的Android控件,我從來沒有使用他使用的控件,但本地控件完美地適用於我 –

+0

我試圖按照上面的建議使用SwipeRefreshLayout,但我有錯誤:[mono-rt] android。 view.InflateException:二進制XML文件行#1:錯誤膨脹類swipetorefresh.ScrollChildSwipeRefreshLayout –

相關問題