상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
채권 수익률을 예측하는 데 유용한 지표는 무엇인가요?
미국 국채의 케이스 스터디: 역사적인 투자 결과
미국 경제와 금융 위기 전후의 변화
인도네시아 경제: 대중교통의 발전 방향
인도네시아 경제와 소셜 미디어의 영향력
월스트리트와 함께 자주 언급되는 금융용어는 무엇인가요?
월스트리트에서의 주식 공시 규정은 무엇인가요?
맨해튼에서 쇼핑하기 좋은 지역은 어디인가요?
맨해튼의 유명한 거리 이름의 유래는 무엇인가요?
구글에서 비즈니스 홍보를 위해 사용할 수 있는 도구는?
부동산 투자 기초: 올바른 투자 결정을 위해 필요한 데이터는?
부동산 투자 기초: 투자 판단 시 참조해야 하는 경제 지표는?
Previous
Next
수정하기 - ViewPager의 다양한 페이지 레이아웃을 구성하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
ViewPager는 Android에서 여러 페이지를 수평으로 스와이프하여 보여줄 수 있는 UI 컴포넌트입니다. 다양한 페이지 레이아웃을 구성하는 방법은 다음과 같습니다. 1. PagerAdapter 설정하기 ViewPager는 PagerAdapter를 통해 각 페이지를 관리합니다. 기본적으로 제공되는 `FragmentPagerAdapter`와 `FragmentStatePagerAdapter`, 혹은 `BaseAdapter`를 상속받아 커스텀 어댑터를 구현할 수 있습니다. ```java public class MyPagerAdapter extends FragmentPagerAdapter { public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { // 각 포지션에 대한 Fragment 반환 } @Override public int getCount() { return NUM_PAGES; // 페이지 수 } } ``` 2. 다양한 레이아웃 구성하기 각 페이지에 대한 레이아웃은 XML 파일로 정의하고, Fragment 내에서 이를 Inflate하면 됩니다. 예시 XML 레이아웃 - page_layout.xml ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_<a href='https://sangseek.com/sangseeks/height/ko'>height</a>="match_parent" android:orientation="vertical"> <<a href='https://sangseek.com/sangseeks/TextView/ko'>TextView</a> android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <!-- 다른 UI 요소들 추가 --> </LinearLayout> ``` Fragment에서 레이아웃 Inflate 하기 ```java public class MyFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.page_layout, container, false); // UI 요소에 대해 추가적인 설정 return view; } } ``` 3. 동적으로 페이지 내용 변경하기 사용자의 <a href='https://sangseek.com/sangseeks/인풋/ko'>인풋</a> 또는 <a href='https://sangseek.com/sangseeks/애플/ko'>애플</a>리케이션의 상태에 따라 동적으로 콘텐츠를 변경할 수 있습니다. Fragment나 Activity에서 데이터를 받아 Fragment로 전달할 수 있습니다. ```java @Override public Fragment getItem(int position) { MyFragment fragment = new MyFragment(); Bundle args = new Bundle(); args.putString("data_key", "Some Data for position " + position); fragment.setArguments(args); return fragment; } ``` 4. 다양한 뷰 타입 사용하기 ViewPager는 Fragment뿐만 아니라 ViewGroup의 서브클래스인 View를 사용할 수도 있습니다. 이를 통해 더 복잡한 레이아웃을 사용할 수 있습니다. ```java @Override public Object instantiateItem(ViewGroup container, int position) { View view = LayoutInflater.from(container.getContext()).inflate(R.layout.custom_page_layout, container, false); container.addView(view); return view; } ``` 5. 페이지 전환 애니메이션 추가하기 ViewPager의 기본 전환 애니메이션을 변경하려면 `setPageTransformer()` 메서드를 사용할 수 있습니다. ```java viewPager.setPageTransformer(true, new ViewPager.PageTransformer() { @Override public void transformPage(View page, float position) { // 페이지 전환 애니메이션 로직 작성 if (position < -1) { // [-Infinity,-1) page.setAlpha(0); } else if (position <= 1) { // [-1,1] page.setAlpha(1); // 추가적인 변환 로직 } else { // (1,+Infinity] page.setAlpha(0); } } }); ``` 6. ViewPager2 사용하기 ViewPager2는 RecyclerView 기반의 새로운 구현체로, 더 많은 기능과 유연성을 제공합니다. ViewPager2를 사용할 경우 RecyclerView.Adapter를 상속받아 더 많은 레이아웃 관리가 가능합니다. 결론 ViewPager는 다양한 페이지 레이아웃을 손쉽게 구성할 수 있는 유용한 UI 컴포넌트입니다. 위의 방법을 통해 여러 페이지를 만들어 사용자에게 더욱 풍부한 경험을 제공할 수 있습니다. 추가적인 기능이나 커스터마이징이 필요할 경우, RecyclerView와 같은 다른 컴포넌트를 고려하여 더 복잡한 UI를 구현할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기