2014-11-15 1 views
2

다음 레이아웃 (SearchLayoutView)의 MvxListView가 일반 xamarin 목록보기와 같이 부드럽 지 않습니다. 목록을 아래로 스크롤하면 항목이 고정됩니다. Template (search_list_item)을 Item으로 바인딩합니다. 따라서 Model의 속성은 레이아웃 속성과 바인딩됩니다. 그것이이 행동의 이유입니까? 스크롤 속도를 어떻게 낮출 수 있습니까? 이 문제가 해결 될까요? 누구든지이 문제를 해결할 수있는 방법을 제안 할 수 있습니까?MvxListView가 일반 xamarin 목록보기처럼 부드럽 지 않음

나는 자 마린 안드로이드 4.18.1, MVVM 크로스 3.2.1

SearchLayoutView

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res/MyAPP.Droid" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:id="@+id/linearSearchResultView" 
     android:background="@color/graySerachView"> 
     <TextView 
      android:minWidth="25px" 
      android:minHeight="25px" 
      android:layout_width="match_parent" 
      android:layout_height="40dp" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginBottom="10dp" 
      android:drawableLeft="@android:drawable/ic_menu_search" 
      android:background="@drawable/searchbutton" 
      android:singleLine="true" 
      android:editable="false" 
      android:id="@+id/MainSearchResultView" 
      android:gravity="fill" 
      local:MvxBind="Text SearchString" /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="Search Result" 
      android:id="@+id/textViewResultCount" /> 
    </LinearLayout> 
    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Load More " 
     android:layout_alignParentBottom="true" 
     android:id="@+id/SearchprogressView" 
     android:visibility="gone" /> 
    <Mvx.MvxListView 
     android:minWidth="25px" 
     android:minHeight="25px" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:id="@+id/ListSearchResult" 
     android:layout_below="@+id/linearSearchResultView" 
     android:layout_above="@+id/SearchprogressView" 
     local:MvxBind="ItemsSource Item" 
     local:MvxItemTemplate="@layout/search_list_item" 
     android:smoothScrollbar="true" /> 
</RelativeLayout> 

search_list_item

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res/MyAPP.Droid" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/LinearLayoutItem" 
    android:background="@drawable/border"> 
    <GridLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:columnCount="2" 
     android:rowCount="3" 
     android:orientation="horizontal" 
     android:layout_margin="5dp" 
     android:id="@+id/GridSearchMain"> 
     <Mvx.MvxImageView 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:id="@+id/imageSearchProducts" 
      android:layout_row="0" 
      android:layout_column="0" 
      android:layout_rowSpan="3" 
      android:layout_margin="5dp" 
      local:MvxBind="Bitmap ProductImageUrl, Converter=ImageView" /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/TextSearchProductName" 
      android:layout_column="1" 
      android:layout_row="0" 
      android:textColor="#FFFF0000" 
      local:MvxBind="Text ProductName" /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/TextSearchUnitPrice" 
      android:layout_column="1" 
      android:layout_row="1" 
      local:MvxBind="Text UnitPrice" /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/TextSearchProductId" 
      android:layout_column="1" 
      android:layout_row="2" 
      local:MvxBind="Text ProductId" /> 
    </GridLayout> 
</RelativeLayout> 

조각 코드

를 사용하고 있습니다
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
     { 
      try 
      { 

       if (_rooView != null) 
       { 
        var viewGroup = (ViewGroup) _rooView.Parent; 
        viewGroup.RemoveView(_rooView); 

        //Get ViewModel 
        var viewModel = (SearchResultViewModel) ViewModel; 
        //Bind to List View. 
        _rooView. 
         FindViewById<MvxListView>(Resource.Id.ListSearchResult).ItemsSource = viewModel.Item; 

        return _rooView; 
       } 

       var ingnore = base.OnCreateView(inflater, container, savedInstanceState); 
       _rooView = this.BindingInflate(Resource.Layout.fragment_serach_result, null); 

       return _rooView; 
      } 
      catch (Exception exception) 
      { 
       var dialogAlert = new AlertDialog.Builder(this.Activity); 
       dialogAlert.SetMessage(exception.Message); 
       dialogAlert.Show(); 
       return null; 
      } 
     } 
+3

이미지가 동 기적으로로드 되었기 때문일 수 있습니까? –

+0

@Miha Markic. 감사합니다.하지만 imagView를 제거하여 시도했습니다. 다시 같은 문제가 발생했습니다. – Thabo

+1

새로운 Xamarin 프로파일 러가 도움이됩니까? 하나씩 비트를 제거하여 목록 스크롤을 부드럽게 만들 수 있습니까? 그게 문제가 무엇인지 식별하는 데 도움이 될 수 있습니다 - 그것이 바인딩되거나 크기가 조정되거나 뭔가 다른 것 ... – Stuart

답변

1

Gotcha! Stuart가 위에서 언급 한 것처럼 표준 ImageUrl 바인딩을 확인했습니다. "파일 다운로드 플러그인"및 "다운로드 캐시 플러그인"이 누락되었습니다. 나는이 모든 것을 누젠트에서 설치했다. 이제 표준 바인딩이 제대로 작동하고 있습니다. 목록보기도 정상적인 안드로이드 ListView처럼 부드럽습니다.

그래서 문제는 MvxImageView가 변환기를 사용하는 동안 동 기적으로 이미지를 다운로드하는 것입니다. 그러나 표준 바인딩은 비동기 적으로이를 수행합니다.

Miha Markic에게도 감사의 말을 이미 언급했습니다.

관련 문제