Как реализовать разбиение на страницы в виде списка Android

Я работаю над Android-приложением, в котором мне нужно показать listview с элементами. Но в списке есть больше элементов.

Я решил реализовать разбивку на страницы. Я пробовал искать в Google, но не нашел никакой связанной информации.

Может кто-нибудь мне помочь.

Реализация разбиения на страницы очень проста.

Взгляните на это …

 public class MainActivity extends Activity { private ListView listview; private TextView title; private ArrayList data; ArrayAdapter sd; public int TOTAL_LIST_ITEMS = 1030; public int NUM_ITEMS_PAGE = 100; private int noOfBtns; private Button[] btns; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (ListView)findViewById(R.id.list); title = (TextView)findViewById(R.id.title); Btnfooter(); data = new ArrayList(); /* * The ArrayList data contains all the list items */ for(int i=0;i sort = new ArrayList(); int start = number * NUM_ITEMS_PAGE; for(int i=start;i<(start)+NUM_ITEMS_PAGE;i++) { if(i(this, android.R.layout.simple_list_item_1, sort); listview.setAdapter(sd); } } 

Файл Xml:

          1          

Для получения более четких объяснений и исходного кода посетите эти ссылки.

ListView Pagination Ex-1

ListView Pagination Ex-2

Я создал это пользовательское listview.

  package com.pixecon.custom.views; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.widget.FrameLayout; import android.widget.ListView; public class PagingListView extends ListView { boolean needScroll = true; private String TAG = "CustomListView"; public PagingListView(Context context, AttributeSet attrs) { super(context, attrs); } public void setNeedScroll(boolean needScroll) { this.needScroll = needScroll; } @Override public boolean onInterceptTouchEvent(MotionEvent event) { if (!needScroll) { return false; } else { return super.onInterceptTouchEvent(event); } } @Override public void setOnScrollListener(OnScrollListener l) { super.setOnScrollListener(l); } public void onScrollStarted() { //Scroll Started. } public void onScrollStopped() { centralizeTheView(); } private void centralizeTheView() { int height = getResources().getDisplayMetrics().heightPixels; int centerY = height / 2; int visibleFirstItemPosition = getFirstVisiblePosition(); int visibleLastItemPosition = getLastVisiblePosition(); Log.d(TAG, "visibleFirstVisible = " + visibleFirstItemPosition); Log.d(TAG, "visibleLastVisible = " + visibleLastItemPosition); //TODO: Check the calcualted value and reconfirm. int firstPositionInGroup = visibleFirstItemPosition % 2 - 1; if (firstPositionInGroup < 0) { firstPositionInGroup = 0; } FrameLayout layout = (FrameLayout) getChildAt(firstPositionInGroup); int bottom = layout.getBottom(); //Calculate the exact bottom of the view by subtracting if (bottom > centerY) { Log.d(TAG, "First Item - " + visibleFirstItemPosition); /*listView.smoothScrollBy(3, 1);*/ //listView.smoothScrollToPosition(visibleFirstItemPosition); setSelection(visibleFirstItemPosition); } else { Log.d(TAG, "Last Item - " + visibleLastItemPosition); /*listView.smoothScrollBy(-3, 1);*/ //listView.smoothScrollToPosition(visibleLastItemPosition); setSelection(visibleLastItemPosition); } } } 
Давайте будем гением компьютера.