Вы можете проверить, все ли видны ваши кнопки. Сначала проверьте, видна ли одна кнопка:
private boolean isViewVisible(View view) {
Rect scrollBounds = new Rect();
mScrollView.getDrawingRect(scrollBounds);
float top = view.getY();
float bottom = top + view.getHeight();
if (scrollBounds.top < top && scrollBounds.bottom > bottom) {
return true;
} else {
return false;
}
}
Если это не видно, добавьте еще одну кнопку еще раз. Вызовите этот метод в прослушивателе прокрутки при каждом прокрутке пользователя, чтобы проверить, не отображается ли кнопка. Если кнопка не видна, добавьте ее еще раз.
Если вы хотите, чтобы сделать его бесконечным сам, попробуйте следующее:
public class Test extends ListActivity implements OnScrollListener {
Aleph0 adapter = new Aleph0();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(adapter);
getListView().setOnScrollListener(this);
}
public void onScroll(AbsListView view,
int firstVisible, int visibleCount, int totalCount) {
boolean loadMore = /* maybe add a padding */
firstVisible + visibleCount >= totalCount;
if(loadMore) {
adapter.count += visibleCount; // or any other amount
adapter.notifyDataSetChanged();
}
}
public void onScrollStateChanged(AbsListView v, int s) { }
class Aleph0 extends BaseAdapter {
int count = 40; /* starting amount */
public int getCount() { return count; }
public Object getItem(int pos) { return pos; }
public long getItemId(int pos) { return pos; }
public View getView(int pos, View v, ViewGroup p) {
TextView view = new TextView(Test.this);
view.setText("entry " + pos);
return view;
}
}
}
И посмотрите на это:
Android Endless List
android:how to make infinite scrollview with endless scrolling
Вот он. Просто посмотрите, когда представление выходит за пределы, когда пользователь прокручивает.
И когда это не видно, просто добавьте его.
Надеюсь, эта помощь: http://stackoverflow.com/questions/19469054/androidhow-to-make-infinite-scrollview-with-endless-scrolling –
Короткий путь - дублирование содержимого и перемотка прокрутки назад в определенных точках. Истинный способ - переопределить некоторые методы отправки ScrollView для правильной обработки событий и рендеринга содержимого. И перемотка назад назад. xD – nekavally