상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - ViewPager의 스와이프 시 호출하는 핸들러 구현하기.
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`ViewPager`에서 스와이프 시 특정 이벤트를 처리하기 위해 핸들러를 구현할 수 있습니다. `ViewPager`의 페이지 전환과 관련된 콜백을 활용하여 적절한 작업을 수행할 수 있습니다. 아래는 Android에서 `ViewPager`의 스와이프 이벤트를 처리하기 위한 단계별 <a href='https://sangseek.com/sangseeks/구현 방법/ko'>구현 방법</a>입니다. 1. 의존성 추가 먼저, `ViewPager`를 사용하기 위해 Gradle 파일에 의존성을 추가합니다. AndroidX를 사용하는 경우 `ViewPager2`를 사용하는 것이 좋습니다. ```groovy dependencies { implementation 'androidx.viewpager2:viewpager2:1.0.0' } ``` 2. XML 레이아웃 파일 작성 `ViewPager`를 포함하는 XML 레이아웃 파일을 작성합니다. ```xml <androidx.viewpager2.widget.ViewPager2 android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 3. 어댑터 구현 `ViewPager`에 사용할 어댑터를 구현합니다. ```java public class MyPagerAdapter extends RecyclerView.Adapter<MyPagerAdapter.ViewHolder> { private List<String> dataList; public MyPagerAdapter(List<String> dataList) { this.dataList = dataList; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { holder.bind(dataList.get(position)); } @Override public int getItemCount() { return dataList.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { private TextView textView; public ViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.textView); } public void bind(String text) { textView.setText(text); } } } ``` 4. ViewPager 및 핸들러 설정 `Activity` 또는 `Fragment`에서 `ViewPager`의 어댑터를 설정하고 페이지 변경에 대한 리스너를 추가합니다. ```java public class MainActivity extends AppCompatActivity { private ViewPager2 viewPager; private MyPagerAdapter pagerAdapter; private List<String> dataList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = findViewById(R.id.viewPager); dataList = Arrays.asList("Page 1", "Page 2", "Page 3"); pagerAdapter = new MyPagerAdapter(dataList); viewPager.setAdapter(pagerAdapter); // 페이지 변경 리스너 등록 viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @Override public void onPageSelected(int position) { super.onPageSelected(position); // 핸들러에서 할 작업 handlePageChange(position); } }); } private void handlePageChange(int position) { // 페이지 변경 시 수행할 작업 Toast.makeText(this, "현재 위치: " + position, Toast.LENGTH_SHORT).show(); // 추가적인 로직을 여기에 포함 가능 } } ``` 추가적인 고려 사항 - `ViewPager`의 페이지를 스와이프할 때, 애니메이션을 추가하거나 특정 데이터 변경 등을 할 수 있습니다. - 각 페이지의 특정 이벤트를 처리하고 싶다면, 해당 페이지의 뷰에서 `setOnClickListener` 등을 설정하여 처리할 수 있습니다. 이렇게 구현하면 `ViewPager`의 스와이프 시 페이지가 변경되는 이벤트를 감지하고, 원하는 작업을 수행할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기