Bạn cần thư viện phù hợp để triển khai những gì bạn muốn.
Về cơ bản, thư viện ViewPager
là những gì còn thiếu trong bạn. gợi ý của tôi:
1. ActionBarSherlock
Thật dead-dễ dàng để làm việc với rằng tôi sẽ không giải thích nó.
2. ViewPagerExtensions
Bạn có thể tìm thấy nó here. Tải xuống các tệp ZIP và tạo một dự án mới từ đó.
Tôi chỉ có thể làm cho bộ này hoạt động như tĩnh, tôi muốn tạo ứng dụng này như ứng dụng thị trường Android (chuyển động swype).
Triển khai com.astuetz.viewpager.extensions.SwipeyTabsView
từ dự án này. Có những ví dụ dễ làm theo. nó thực hiện chính xác những gì bạn muốn. Thậm chí còn có các kiểu tab khác để chọn (bao gồm tab Mọi người mới đi kèm với ICS). Bên cạnh đó, nó rất dễ dàng để tạo kiểu cho phù hợp với danh tính ứng dụng của bạn.
3. FragmentPagerAdapter
Cuối cùng, đó là lớp từ thư viện hỗ trợ (v4).
Chúc may mắn và được tự do hỏi tôi xem bạn có cần thêm trợ giúp không.
Bạn không cần ghi đè instantiateItem
trong FragmentPagerAdapter
nếu bạn đang sử dụng những gì tôi đề xuất. Bạn chỉ cần
- Cung cấp một hàm tạo với
FragmentManager
và gọi thực hiện siêu;
- Override
getCount
để trả lại số mảnh vỡ trong máy nhắn tin của bạn, và
getItem
, đó là những gì bạn sẽ sử dụng để quay trở lại mảnh vỡ của bạn để tạo.
Đây là ví dụ từ mã tôi có ở đây (ví dụ sản xuất, làm việc đầy đủ). Đây là lớp bên trong cho hoạt động triển khai máy nhắn tin:
static class MyFragmentPagerAdapter extends FragmentPagerAdapter {
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 2;
}
@Override
public Fragment getItem(int position) {
Fragment f;
switch(position) {
case 0:
f= new ItemSalesDataFragment();
break;
case 1:
f= new DepartmentChooserFragment();
break;
default:
throw new IllegalArgumentException("not this many fragments: " + position);
}
return f;
}
}
Như bạn có thể thấy, máy nhắn tin này xử lý hai 'trang', bên trái hiển thị dữ liệu bán hàng.Quyền phù hợp cho phép người dùng chọn bộ phận nào. Chúng được trả về theo phương thức getItem
. Các mảnh thích hợp (bạn có thể sử dụng bất kỳ mảnh vỡ bạn đã có, không cần sửa đổi).
Như mong đợi, bạn kết hợp tất cả điều này với nhau bằng 1) tạo đối tượng khởi tạo MyFragmentPagerAdapter
và 2) đặt bộ điều hợp cho đối tượng ViewPager
của bạn để trở thành lớp mà bạn vừa khởi tạo. Như bạn có thể thấy, phương thức getItem
của nó sẽ "cung cấp" cho máy nhắn tin tất cả các mảnh bạn cần. Ví dụ:
mFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mFragmentPagerAdapter);
Tất nhiên, có những thứ khác để làm, như tạo các nút tab bản thân và tham gia tất cả điều này để xuyên giao tiếp. Tôi khuyên bạn nên xem các ví dụ được cung cấp trong tệp ZIP ViewPagerExtensions mà bạn tải xuống từ GitHub. Đây chỉ là câu trả lời cho câu hỏi trong bình luận của bạn. Như bạn có thể thấy, nó không phải là nhiều mã sử dụng thư viện này.
Bạn cần đăng mã bạn đang gặp sự cố và LogCat của bạn nếu có bất kỳ ngoại lệ nào bị ném. Nếu bạn muốn vuốt giữa 'Fragments', bạn cần sử dụng' ViewPager'. – adneal
https://github.com/JakeWharton/ActionBarSherlock/blob/master/samples/fragments/src/com/actionbarsherlock/sample/fragments/FragmentTabsPager.java –