ViewPager의 현재 페이지를 가져오는 방법은 무엇인가요?
_____A: ViewPager에서 현재 페이지의 인덱스를 가져오려면 `getCurrentItem()` 메서드를 사용합니다. 이 메서드는 현재 보이는 페이지의 인덱스(0부터 시작하는 정수)를 반환합니다.
```java
int currentPage = viewPager.getCurrentItem();
```
---
Q: ViewPager2에서는 현재 페이지를 어떻게 가져오나요?
A: ViewPager2도 `getCurrentItem()` 메서드를 제공합니다. 동일하게 현재 페이지 인덱스를 반환합니다.
```java
int currentPage = viewPager2.getCurrentItem();
```
---
Q: ViewPager에서 페이지 변경 시 현재 페이지 인덱스를 실시간으로 확인하려면 어떻게 하나요?
A: `ViewPager.OnPageChangeListener` 또는 `ViewPager2.OnPageChangeCallback`을 사용해 페이지가 변경될 때마다 호출되는 콜백 메서드에서 현재 페이지를 얻을 수 있습니다.
*ViewPager 예시:*
```java
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
public void onPageSelected(int position) {
// 현재 페이지 인덱스
int currentPage = position;
}
@Override
public void onPageScrollStateChanged(int state) {}
});
```
*ViewPager2 예시:*
```java
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
// 현재 페이지 인덱스
int currentPage = position;
}
});
```
---
요약:
- `getCurrentItem()` 을 호출하여 현재 페이지 인덱스 획득
- 페이지 변경 콜백에서 전달되는 `position` 값을 활용 가능
- ViewPager와 ViewPager2 모두에서 동일한 방식으로 사용 가능
이 방법을 통해 현재 보이는 페이지 번호를 쉽게 알아낼 수 있습니다.
이 메서드는 현재 선택된 페이지의 인덱스를 반환합니다.
아래에 Java와 Kotlin에서의 예제를 제공하겠습니다.
Java 예제 ```java import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager.widget.ViewPager; public class MainActivity extends AppCompatActivity { private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = findViewById(R.id.viewPager); // Adapter 설정 viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager())); // 현재 페이지 가져오기 int currentPage = viewPager.getCurrentItem(); // 현재 페이지 사용 System.out.println("현재 페이지: " + currentPage); } } ``` Kotlin 예제 ```kotlin import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.viewpager.widget.ViewPager class MainActivity : AppCompatActivity() { private lateinit var viewPager: ViewPager override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) viewPager = findViewById(R.id.viewPager) // Adapter 설정 viewPager.adapter = MyPagerAdapter(supportFragmentManager) // 현재 페이지 가져오기 val currentPage = viewPager.currentItem // 현재 페이지 사용 println("현재 페이지: $currentPage") } } ``` 주의사항 - `getCurrentItem()` 또는 `currentItem`은 UI 스레드에서만 호출하는 것이 좋습니다.
- `ViewPager`의 페이지가 변경될 때마다 현재 페이지를 업데이트하고 싶다면 `ViewPager.OnPageChangeListener`를 추가하여, 페이지가 변경될 때마다 현재 페이지 인덱스를 업데이트할 수 있습니다.
페이지 변경 리스너 예제 ```java viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { System.out.println("선택된 페이지: " + position); } @Override public void onPageScrollStateChanged(int state) { } }); ``` 이렇게 `ViewPager`의 현재 페이지를 가져오고, 페이지 변경 이벤트를 처리하는 방법을 사용할 수 있습니다.
작성자:
정하은 [비회원]
| 작성일자: 1년 전
2025-04-03 07:01:05
조회수: 130 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 130 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.