Skip to content

PagerAdapter #3

@wnsdudSoftkim

Description

@wnsdudSoftkim

.sample5_viewPager.kt

class sample5_viewPager : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_sample5_view_pager)


        //sample4 Fragment를 불러와서 사용
        val fragmentOne = sample4fragment()
        val adapters = pagerAdapter(supportFragmentManager)
        //넣어주고
        adapters.addItems(fragmentOne)
        //adapter에 연동시켜줌
        viewPager.adapter = adapters
        //탭 레이아웃에도 연동시켜줌
        tabLayout.setupWithViewPager(viewPager)
        //Tab의 0번째 인덱스를 가져와서 aa 라는 이름을 지어줌
        tabLayout.getTabAt(0)?.setText("aa")
        //응용해서 setCostomView로 할수 있음




    }
    //PagerAdapter 구현0
    //fragment를 하나씩 리스트에 넣어줌.
    private inner class pagerAdapter(fragmentmanager :FragmentManager):FragmentStatePagerAdapter(fragmentmanager) {
       private val fragments : ArrayList<Fragment> = ArrayList()
        override fun getItem(position: Int): Fragment {
            return fragments[position]
        }

        override fun getCount(): Int {
            return fragments.size
        }
        fun addItems(item:Fragment){
            fragments.add(item)
        }
    }

}

.activity_sample5_view_pager.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    tools:context=".sample5_viewPager">
    <com.google.android.material.tabs.TabLayout
        android:layout_width="match_parent"
        android:id="@+id/tabLayout"
        android:layout_height="50dp"/>
    <androidx.viewpager.widget.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions