ViewPager와 PagerAdapter를 사용하여 슬라이딩 뷰 만들기
컨텐트
ViewPager와 PagerAdapter를 사용하여 오른쪽으로 왼쪽으로 이동하는 뷰 연습입니다.
Tab 마이그레이션도 포함되었습니다.
제작
아주 간단해요.쥐부터 멧돼지까지 끝.
숫자의 표시가 붕괴된 것을 용서해 주십시오.
득점
ViewPager 및 TabLayout 정의
중요한 내용은 아니지만 ViewGroup 및 TabLayout을 정의합니다.
activity_zodiac_pager.xml<?xml version="1.0" encoding="utf-8"?>
<androidx.viewpager.widget.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</androidx.viewpager.widget.ViewPager>
PagerAdapter 설정
PagerAdapter를 ViewPager로 설정하여 뒤집기 뷰를 생성합니다.
adapter이기 때문에 RecyclerView입니다.약간 어댑터 같아.
PageAdapter는 세 가지 방법을 정의합니다.
아주 간단해요.쥐부터 멧돼지까지 끝.
숫자의 표시가 붕괴된 것을 용서해 주십시오.
득점
ViewPager 및 TabLayout 정의
중요한 내용은 아니지만 ViewGroup 및 TabLayout을 정의합니다.
activity_zodiac_pager.xml<?xml version="1.0" encoding="utf-8"?>
<androidx.viewpager.widget.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</androidx.viewpager.widget.ViewPager>
PagerAdapter 설정
PagerAdapter를 ViewPager로 설정하여 뒤집기 뷰를 생성합니다.
adapter이기 때문에 RecyclerView입니다.약간 어댑터 같아.
PageAdapter는 세 가지 방법을 정의합니다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.viewpager.widget.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</androidx.viewpager.widget.ViewPager>
총수를 얻다
지정된 위치에 있는 Fragment를 반환합니다
지정한 위치에 있는 Tab용 디스플레이를 되돌려줍니다
FragmentPagerAdapter의 특징
여기에는 FragmentPagerAdapter를 PageAdapter의 구현으로 사용합니다.
역할은 대체로 같지만 Fragment StatePager Adapter도 있습니다.
이러한 차이와 사용 방법은 다음과 같다.
특징
용도
FragmentStatePagerAdapter
앞뒤 페이지를 제외하고 메모리에서 폐기
표시된 수량이 많은 물건
FragmentPagerAdapter
메모리가 제거되지 않았습니다.
고정이 적은 것(Tab은 이쪽으로 묶을까요?)
이번에는 12개가 고정되어 있어서 Fragment Pager Adapter를 사용했습니다.
(12개는 다종설?)
FragmentStatePagerAdapter에서 기본값은 앞뒤 페이지입니다
setOffscreenPageLimit(int)
불러오기 전후의 페이지 수를 조정할 수 있습니다.ZodiacPagerActivity.kt
class ZodiacPagerActivity : AppCompatActivity() {
private lateinit var mViewPager: ViewPager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_zodiac_pager)
mViewPager = findViewById(R.id.view_pager)
val fragmentManager = supportFragmentManager
mViewPager.adapter = object : FragmentPagerAdapter(fragmentManager) {
override fun getItem(i: Int): Fragment {
val fragment = ZodiacFragment()
fragment.arguments = Bundle().apply {
putInt(ARG_OBJECT, i)
}
return fragment
}
override fun getCount(): Int {
return 12
}
override fun getPageTitle(position: Int): CharSequence? {
return "${position + 1}"
}
}
}
}
private const val ARG_OBJECT = "object"
class ZodiacFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_zodiac, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val textView: TextView = view.findViewById(R.id.zodiacText)
val i = arguments?.getInt(ARG_OBJECT)
textView.text = getAnimalName(i)
}
private fun getAnimalName(i: Int?): String {
return when (i) {
0 -> "子"
1 -> "丑"
2 -> "寅"
3 -> "卯"
4 -> "辰"
5 -> "巳"
6 -> "午"
7 -> "未"
8 -> "申"
9 -> "酉"
10 -> "戌"
11 -> "亥"
else -> "神"
}
}
}
참고 자료
Create swipe views with tabs
Android Programming: The Big Nerd Ranch Guide (3rd Edition) (Big Nerd Ranch Guides)
Reference
이 문제에 관하여(ViewPager와 PagerAdapter를 사용하여 슬라이딩 뷰 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shira-jun/items/1c40b087b38a370c6d18
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ViewPager와 PagerAdapter를 사용하여 슬라이딩 뷰 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shira-jun/items/1c40b087b38a370c6d18텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)