Có thể sử dụng một đoạn trong một khung nhìn nhiều lần không? Tôi đang cố gắng xây dựng một giao diện người dùng được cập nhật động bằng cách sử dụng ViewPager. Tôi muốn sử dụng cùng một thiết kế, về cơ bản cùng một đoạn với các dữ liệu khác nhau cho mỗi trang, như một bộ điều hợp listview.Sử dụng một Fragment trong ViewPager nhiều lần
Trả lời
Bạn có thể khởi tạo cùng một lớp Phân đoạn cho mỗi trang trong ViewPager của mình, chuyển vị trí của ViewPager để kiểm soát nội dung hiển thị. Một cái gì đó như thế:
public class MyFragment extends Fragment {
private int mIndex;
public MyFragment(int index) {
mIndex = index;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
switch(mIndex){
case 0:
// do you things..
case 1:
// etcetera
}
}
}
sau đó, trong bạn FragmentPagerAdapter:
public static class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
return new MyFragment(position);
}
}
Bằng cách đó bạn có thể tái sử dụng hầu hết các mã của bạn chỉ thay đổi những gì bạn cần trong câu lệnh switch/trường hợp.
nhưng bạn không thể tạo một hàm tạo không rỗng của lớp phân đoạn –
Bạn hiểu sai khái niệm về class
so với object of class
. mã nguồn MyFragment.java
của bạn xác định class
mà bạn biến thành "vật sống" mỗi khi bạn nhanh chóng nó với new
điều hành (new MyFragment();
) - điều này tạo ra object
mà là một instance
của class
của bạn. Trừ khi bạn cố ý ngăn chặn điều này (bằng cách sử dụng mẫu Singleton), bạn có thể tạo số lượng instances
của số class
tùy ý, giống như cách bạn được phép tạo bao nhiêu tức là bánh bằng công thức đơn. Và điều này cũng áp dụng cho các mảnh vỡ.
Vì vậy, miễn là bạn tạo riêngobject
(aka nói instance
) của class
của bạn cho mỗi trang, bạn sẽ có thể làm những gì bạn muốn.
bạn có thể cung cấp một số mẫu cho lời giải thích ở trên không ..? – Harsha
- 1. Android - Tạo nhanh một Fragment nhiều lần?
- 2. ViewPager + Fragments - Fragment not shown
- 3. Làm thế nào thiết lập ViewPager bên trong một Fragment
- 4. ViewPager + Adapter trong Fragment => swash swiping
- 5. ViewPager trong DialogFragment, IllegalStateException: Fragment không có một cái nhìn
- 6. Danh sách lọcView là một phần của một ViewPager Fragment
- 7. Binding và unbinding Android Service đến/từ Fragment (trong ViewPager)
- 8. Sử dụng một CTE nhiều lần
- 9. Xử lý PagerTitleStrip nhấp chuột trong compatibiliy ViewPager Fragment
- 10. Đặt tab mặc định cho thiết lập Fragment/ViewPager
- 11. phương thức getItem() được gọi hai lần khi sử dụng Bộ chuyển đổi phân trang Fragment
- 12. Sử dụng chế độ xem hoặc phân đoạn trong ViewPager
- 13. Làm thế nào tôi có thể nhận được một tham chiếu đến một Fragment trong ViewPager?
- 14. Cách sử dụng bố cục nhiều ngăn với ViewPager
- 15. Gọi onStart() của Fragment trước để hiển thị ViewPager, navigation_mode_tabs
- 16. JavaFX: Sử dụng một Chủ đề nhiều hơn một lần
- 17. Nhiều trang cùng một lúc trên ViewPager
- 18. Ứng dụng Android bị lỗi sau một thời gian sử dụng Phân đoạn và ViewPager
- 19. Sử dụng str_replace nhiều lần trên cùng một chuỗi
- 20. Sử dụng lại PreparedStatement nhiều lần
- 21. Sử dụng lại cùng một trang nhiều lần
- 22. WebView tải lại khi Fragment trong ViewPager được giữ lại dưới dạng BackStack
- 23. tái sử dụng BackgroundWorker nhiều hơn một lần
- 24. Sử dụng cùng một hành động trên nhiều lần phun?
- 25. Làm thế nào để thay thế một ViewPager với một Fragment
- 26. Hoạt động ViewPager để thông báo cho Fragment về một sự kiện cụ thể
- 27. ViewPager bên trong Fragment biến mất sau transaction.remove() (Duy trì cá thể?)
- 28. Sử dụng LoaderCallbacks mà không cần Fragment
- 29. Cách sử dụng Android ViewPager?
- 30. Sử dụng backstack và nút quay lại trong viewpager
AFAIK, điều này sẽ không hoạt động. Bạn có thể sử dụng một 'GestureDetector' để xem cho swipes trên mảnh hiện có của bạn. – CommonsWare
BTW, để làm rõ, tôi giả định rằng bạn có nghĩa là bạn muốn sử dụng một mảnh * dụ * - nếu bạn có nghĩa là bạn muốn chỉ sử dụng một mảnh * lớp *, đó là hoàn toàn tốt đẹp. – CommonsWare