안드로이드 심심풀이/응용
[안드로이드 스튜디오] RecyclerView에 ViewPager 사용하기
훈땅콩
2019. 7. 22. 17:50
반응형
안녕하세요! 이번에는RecyclerView에 ViewPager 사용하는 방법에 대해 포스팅 합니다!
먼저 RecyclerView안에 ViewPager를 넣어주시고요!
RecyclerViewAdapter에서 선언을 해줍니다!
class ItemViewHolder extends RecyclerView.ViewHolder {
private ViewPager vp;
public ItemViewHolder(View itemView) {
super(itemView);
vp = itemView.findViewById(R.id.imgV);
다음은 ViewPagerAdapter를 만들어 줍니다!
class FragmentAdapter extends FragmentStatePagerAdapter {
// ViewPager에 들어갈 Fragment들을 담을 리스트
private ArrayList<Fragment> fragments = new ArrayList<>();
// 필수 생성자
FragmentAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
// List에 Fragment를 담을 함수
void addItem(Fragment fragment) {
fragments.add(fragment);
}
}
그다음 Adapter를 선언해 주시고!
class ItemViewHolder extends RecyclerView.ViewHolder {
public ViewPager vp;
public FragmentAdapter bannerPagerAdapter;
바인드 부분에서 처리를 해주면 끝!
public void setConfirmTitle(String text) {
((TextView) findViewById(R.id.dialog_confirm_btn)).setText(text);
}
void onBind(Home_Data data ,int position) {
vp.setId(position+1);
bannerPagerAdapter = new FragmentAdapter(fragmentManager);
vp.setAdapter(bannerPagerAdapter);
for (int i = 0; i < data.getListImage().size(); i++) {
ImageFragment imageFragment = new ImageFragment();
imageFragment.setImageBitmap(data.getListImage().get(i));
bannerPagerAdapter.addItem(imageFragment);
}
bannerPagerAdapter.notifyDataSetChanged();
바인드 부분을 처리할때 vp.setId(position+1)을 하지 않으시면 RecyclerView에 첫번째 아이템에만 ViewPager가 적용되니 꼭 넣어주세요!
반응형