EDIT: Tôi đang nói về ViewPager tại đây chứ không phải ViewFlipper.
Lợi ích của việc sử dụng ViewPager là nó rất dễ sử dụng. Bạn chỉ cần tạo một FragmentPagerAdapter và điền vào một vài trường đơn giản. Dưới đây là một ví dụ mà tôi đã viết để hiển thị các mục được truyền từ lớp cha.
public static class DashboardPagerAdapter extends FragmentPagerAdapter {
private static final int NUM_ITEMS_PER_SCREEN = 12;
private List<View> mAllItems;
private int mNumScreens;
public DashboardPagerAdapter(FragmentManager fm, List<View> allItems) {
super(fm);
mAllItems = allItems;
mNumScreens = (int) Math.ceil(mAllItems.size()
/(float) NUM_ITEMS_PER_SCREEN);
Log.d(TAG, "num screens: " + mNumScreens);
}
@Override
public int getCount() {
return mNumScreens;
}
@Override
public Fragment getItem(int position) {
DashboardScreenFragment screen = DashboardScreenFragment
.newInstance();
for (int i = position * NUM_ITEMS_PER_SCREEN; i < (position + 1)
* NUM_ITEMS_PER_SCREEN; i++) {
if (i >= mAllItems.size()) {
break;
}
screen.addChild(mAllItems.get(i));
}
return screen;
}
}
Và đặt nó lên là siêu đơn giản:
final DashboardPagerAdapter adapter = new DashboardPagerAdapter(
getFragmentManager(), mAllButtons);
Trái với những gì @ sebap123 nói, bạn có thể sử dụng mảnh vỡ với Android v4 trở lên với Thư viện hỗ trợ; xem http://developer.android.com/sdk/compatibility-library.html để biết chi tiết, nhưng nó thực sự chỉ liên quan đến việc đưa tệp jar vào thư mục/libs của bạn.
BTW, lưu ý rằng với ViewPager, mỗi "trang" tự là một Phân đoạn.
Để biết liệu có cải thiện hiệu suất hay không, điều đó tùy thuộc vào những gì bạn đang so sánh. Tôi khuyên bạn nên thử dùng ViewPager và chỉ sau khi lo lắng về vấn đề hiệu suất. Như Donald Knuth nói, "Chúng ta nên quên đi những hiệu quả nhỏ, nói khoảng 97% thời gian: tối ưu hóa sớm là gốc rễ của mọi điều ác."
Trong mọi trường hợp, nếu bạn có số lượng lớn trang, hãy xem http://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html để có bộ tiếp hợp phù hợp hơn.
Nguồn
2012-01-30 04:10:24
Nếu bạn muốn phân tích hiệu suất, bạn nên tự mình thực hiện. Stack nói chung là không tốt trả lời các loại câu hỏi. – Warpzit