상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
샌디에고의 주요 교통 수단은 무엇인가요?
댈러스의 주요 관광 명소는 어떻게 가나요?
뉴저지에서 유명한 커피숍은 어디인가요?
워싱턴 D.C.의 주요 공공기관은 무엇인가요?
보스턴의 대학들은 어떤 특징이 있나요?
보스턴의 주요 산업 단지는 어디인가요?
머틀 비치에서의 역사적인 투어는 어떻게 예약하나요?
머틀 비치에서의 지역 예술 전시회는 어디에서 열리나요?
사우스캐롤라이나의 주요 경제 지표는 무엇인가요?
사우스캐롤라이나의 전통적인 스포츠는 무엇인가요?
노스캐롤라이나의 유명한 지역 사회 단체는 어떤 곳이 있나요?
C#의 이벤트와 델리게이트는 무엇인가요?
Previous
Next
수정하기 - ViewPager의 자동 전환 기능 구현하기.
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`<a href='https://sangseek.com/sangseeks/ViewPager/ko'>ViewPager</a>`는 Android에서 여러 페이지를 스와이프하여 보여줄 수 있는 UI 요소로, UI 디자인에서 자주 사용됩니다. 자동 전환 기능을 구현하려면 타이머를 활용해 주기적으로 페이지를 이동시켜야 합니다. 아래는 `ViewPager`의 자동 전환 기능을 구현하는 방법입니다. Step 1: 기본 설정 먼저, `ViewPager`를 포함한 레이아웃 파일을 정의합니다. 예를 들어, `activity_main.xml` 파일에 다음과 같이 추가합니다. ```xml <androidx.viewpager.widget.ViewPager android:id="@+id/viewPager" android:layout_width="<a href='https://sangseek.com/sangseeks/match_parent/ko'>match_parent</a>" android:layout_height="match_parent"/> ``` Step 2: 어댑터 설정 `ViewPager`에 사용할 어댑터를 생성합니다. `FragmentStatePagerAdapter`를 사용하여 간단한 프래그먼트 목록을 표시할 수 있습니다. ```java pu<a href='https://sangseek.com/sangseeks/b/ko'>b</a>lic class MyPagerAdapter extends FragmentStatePagerAdapter { private List<Fragment> fragmentList; public MyPagerAdapter(FragmentManager fm, List<Fragment> fragments) { super(fm); this.fragmentList = fragments; } @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } } ``` Step 3: ViewPager와 어댑터 연결 `MainActivity`에서 `ViewPager`와 어댑터를 연결합니다. ```java public class MainActivity extends AppCompatActivity { private ViewPager viewPager; private MyPagerAdapter adapter; private Timer timer; private TimerTask timerTask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = findViewById(R.id.viewPager); List<Fragment> fragments = getFragments(); // 프래그먼트 리스트를 가져오는 메소드 adapter = new MyPagerAdapter(getSupportFragmentManager(), fragments); viewPager.setAdapter(adapter); startAutoScroll(); } private List<Fragment> getFragments() { // 프래그먼트 리스트 작성 return Arrays.asList(new Fragment1(), new Fragment2(), new Fragment3()); } ``` Step 4: 자동 전환 기능 구현 타이머를 사용하여 주기적으로 `ViewPager`의 페이지를 전환합니다. ```java private void startAutoScroll() { timer = new Timer(); timerTask = new TimerTask() { @Override public void run() { <a href='https://sangseek.com/sangseeks/runOnUiThread/ko'>runOnUiThread</a>(new Runnable() { @Override public void run() { int currentItem = viewPager.getCurrentItem(); int nextItem = currentItem + 1 < adapter.getCount() ? currentItem + 1 : 0; // 마지막 페이지 이후 첫 페이지로 viewPager.setCurrentItem(nextItem, true); } }); } }; // 2초마다 페이지 전환 timer.schedule(timerTask, 2000, 2000); } @Override protected void onDestroy() { super.onDestroy(); if (timer != null) { timer.cancel(); } } ``` 주의사항 - `Timer`와 `TimerTask`를 사용할 때는 메모리 누수를 방지하기 위해 `Activity`가 종료될 때 `timer.cancel()`을 호출하여 타이머를 종료해야 합니다. - 자동 전환이 사용자의 스와이프 동작과 충돌하지 않도록 적절한 제어 로직을 추가하는 것이 중요할 수 있습니다. 이렇게 설정하면 `ViewPager`의 페이지가 2초마다 자동으로 전환됩니다! 필요에 따라 전환 시간이나 애니메이션을 조정하여 사용자 경험을 개선할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기