Tôi gặp vấn đề với việc triển khai PagerAdapter tùy chỉnh của mình và sử dụng nó với một ViewPager. Mẫu PagerAdapter này có 10 mục, mỗi mục là một nút có chỉ mục là văn bản. Khi tôi chạy chương trình của mình, tôi thấy một nút có văn bản '1' được tạo từ '0'. Và khi tôi vuốt sang các mục khác, tôi chỉ nhận được chế độ xem trống. Khi tôi vuốt ngược lại, đôi khi tôi thấy nút có số, nhưng nó biến mất (có thể nó đang phá hủy và tôi xóa nó khỏi vùng chứa) và đôi khi tôi thấy một nút có số, nhưng số thay đổi sau khi vuốt (tôi nghĩ Tôi tạo một Button mới và thêm nó vào container, và vì một số lý do mà viewpager hiển thị nút mới này).Thực hiện đúng PagerAdapter trong Android
Tôi làm cách nào để khắc phục việc triển khai này? Tôi đã không thấy sự khác biệt trong các ví dụ.
thực hiện PagerAdapter của tôi:
public class MyPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return 10;
}
@Override
public boolean isViewFromObject(View view, Object o) {
return o.getClass()==view.getClass();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Button button = new Button(container.getContext());
ViewGroup.LayoutParams params = new ActionBar.LayoutParams(-1,-1);
button.setLayoutParams(params);
button.setText(String.valueOf(position));
container.addView(button);
return button;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((Button)object);
}
}
Và Hoạt động của tôi:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new MyPagerAdapter());
}
}
Thay thế 'o.getClass() == view.getClass() ' với 'o == view' trong phương thức' isViewFromObject() '. – corsair992