상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - ViewPager에서 페이지 추가 및 삭제 시 UI 업데이트 방법.
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
ViewPager에서 페이지를 추가하거나 삭제할 때 UI를 업데이트하는 방법은 기본적으로 사용 중인 어댑터에 따라 달라집니다. 여기서는 일반적인 `PagerAdapter`와 `FragmentPagerAdapter` 또는 `FragmentStatePagerAdapter`를 기반으로 설명하겠습니다. 1. Adapter 구현하기 먼저, ViewPager에 사용되는 어댑터를 구현해야 합니다. 예를 들어, `FragmentStatePagerAdapter`를 사용하는 경우: ```java public class MyPagerAdapter extends FragmentStatePagerAdapter { private List<Fragment> fragmentList = new ArrayList<>(); public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } public void addFragment(Fragment fragment) { fragmentList.add(fragment); notifyDataSetChanged(); // 페이지가 변경되었음을 어댑터에 알림 } public void removeFragment(int position) { if (position < fragmentList.size()) { fragmentList.remove(position); notifyDataSetChanged(); // 페이지가 변경되었음을 어댑터에 알림 } } } ``` 2. ViewPager와 Adapter 연결하기 이제 Activity나 Fragment에서 ViewPager와 어댑터를 연결합니다. ```java ViewPager viewPager = findViewById(R.id.viewPager); MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(adapter); ``` 3. 페이지 추가하기 페이지를 추가하려면 어댑터의 `addFragment` 메서드를 호출합니다. ```java Fragment newFragment = new MyFragment(); adapter.addFragment(newFragment); // 새 Fragment 추가 ``` 4. 페이지 삭제하기 페이지를 삭제하는 것은 다음과 같습니다. 삭제할 페이지의 위치를 기반으로 `removeFragment` 메서드를 호출합니다. ```java adapter.removeFragment(position); // 삭제할 Fragment의 위치 ``` 5. UI 업데이트 `notifyDataSetChanged()`를 호출하면 ViewPager가 어댑터의 데이터가 변경되었음을 감지하고, UI를 자동으로 업데이트합니다. 이 메서드는 어댑터에서 데이터를 변경한 후 반드시 호출해야 합니다. 이 방법을 통해 페이지의 수가 변경되면 ViewPager가 새로운 페이지를 올바르게 보여줍니다. 6. 추가 고려사항 - Fragment Lifecycle : Fragment의 생명주기와 ViewPager의 연관성을 항상 고려해야 합니다. Fragment가 사라지거나 추가될 때 적절한 상태 관리를 해야 합니다. - Performance : `notifyDataSetChanged()`는 모든 페이지를 재생성하기 때문에 성능에 영향을 줄 수 있습니다. 페이지 수가 많거나 변경이 자주 발생하는 경우, 특정 위치의 페이지만 갱신하는 방법(PagerAdapter의 `notifyItemInserted`, `notifyItemRemoved` 등)을 고려할 수 있습니다. 이러한 방법들을 통해 ViewPager에서 페이지를 쉽게 추가하고 삭제하면서 UI를 동적으로 업데이트할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기