2013-06-08 2 views
2

Я использую этот PullToRefresh Код:Pull-To-Refresh: ListView перерывы в то время как воодушевляющих

https://github.com/erikwt/PullToRefresh-ListView

XML код: Код

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/bg_listview_grey" > 

    <eu.erikw.PullToRefreshListView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/listView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_marginBottom="6dp" 
     android:layout_marginLeft="6dp" 
     android:layout_marginRight="6dp" 
     android:layout_marginTop="6dp" 
     android:divider="@color/bg_listview_grey" 
     android:dividerHeight="6dp" 
     android:drawSelectorOnTop="true" 
     android:scrollbars="none" /> 

</RelativeLayout> 

Деятельность, связанная с ListView:

listView = (PullToRefreshListView) view 
     .findViewById(R.id.feedListView); 
footerView = inflater.inflate(R.layout.footer, listView, false); 
feedListView.addFooterView(footerView); 
listAdapter = new DefaultFeedAdapter((Activity) getSherlockActivity(), 
     list_items, listView); 
listView.setAdapter(listAdapter); 

feedListView.setOnScrollListener(new OnScrollListener() { 
    public void onScrollStateChanged(AbsListView view, int scrollState) { 
    } 

    public void onScroll(AbsListView view, int firstVisibleItem, 
      int visibleItemCount, int totalItemCount) { 

     // what is the bottom item that is visible 
     int lastInScreen = firstVisibleItem + visibleItemCount; 
     // is the bottom item visible & not loading more already ? Load 
     // more ! 
     if ((lastInScreen == totalItemCount) && totalItemCount >= 3 
       && !LoadingNextData && !noMoreItems) { 
      lastId = listAdapter.values.get(totalItemCount - 3).id; 
      LoadingNextData = true; 
      new GetNewItems().execute("" + lastId); 
     } 
    } 
}); 

listView.setOnRefreshListener(new OnRefreshListener() { 
    @Override 
    public void onRefresh() { 
     new RefreshList().execute(""); 
    } 
}); 

private class RefreshFeed extends AsyncTask<String, Void, String> { 
    //adds items at the top of the list if there are any. 
    //But even without any new items ie.. without touching 
    //the listView, it breaks. 
} 

Проблема заключается в том:

enter image description here

В то время как загрузка, она разбивает 40% нижнего ListView, и когда он получает загружен он ломает около 20% от listViewand наконец показывает все listView.

Я что-то не хватает? Пожалуйста помоги.

Thank you.

+0

высота ListView ваша проблема? – Nizam

+0

Я также заметил эту ошибку раньше. В стороне, после тщательных попыток с другими библиотеками, этот вариант по-прежнему является лучшим * Pull-To-Refresh ListView *. – Phil

+1

@Phil Это не самое лучшее, простое и специфичное для ListViews –

ответ

2

не решение вашей проблемы, но использовать это:

https://github.com/chrisbanes/Android-PullToRefresh

Хотя это не говорит

ОБРАТИТЕ ВНИМАНИЕ, ЭТО ПРОЕКТ УЖЕ СРЕДСТВО MAINTAINED

Он работает безупречно с гладким интерфейсом.

Как @Udi Oshi предложил Вы можете также пойти с притяжением Gmail Как обновить:

https://github.com/chrisbanes/ActionBar-PullToRefresh

1

Я думаю, что это известная проблема этой библиотеки, как это происходит до сих пор, даже после того, как они закрыли этот вопрос в их Issues on git

Я хотел бы предложить вам использовать новый Pull to refresh - Gmail like. работает как шарм. весело

Смежные вопросы