# activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.v4.view.ViewPager
android:id="@+id/vpMainActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>
# fragment_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tvFragmentMain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="parent" />
</android.support.constraint.ConstraintLayout>
# AFragment.kt, BFragment.kt, ... EFragment.kt
package com.example.bhj28.test.UI
import android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.bhj28.test.R
import kotlinx.android.synthetic.main.fragment_main.*
class AFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_main, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
//뷰 설정
tvFragmentMain.text = "A Fragment"
}
}
# MainActivity.kt
package com.example.bhj28.test
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private val adapter by lazy { MainAdapter(supportFragmentManager) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
vpMainActivity.adapter = MainActivity@adapter
}
}
# MainAdapter.kt
package com.example.bhj28.test
import android.support.v4.app.Fragment
import android.support.v4.app.FragmentManager
import android.support.v4.app.FragmentStatePagerAdapter
import android.view.ViewGroup
import com.example.bhj28.test.UI.*
class MainAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm) {
override fun getItem(position: Int): Fragment? {
return when (position) {
0 -> AFragment()
1 -> BFragment()
2 -> CFragment()
3 -> DFragment()
4 -> EFragment()
else -> null
}
}
// 생성 할 Fragment 의 개수
override fun getCount() = 5
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
super.destroyItem(container, position, `object`)
//Log.e("FragmentPagerAdapter", "destroyItem position : $position")
}
}
# 마무리
위 포스트는 제가 직접 제작한 것 입니다.
그렇기 때문에 틀린점이나 설명이 엉성한 점이 존재할 수 있습니다.
만약 틀린점이나 설명이 엉성한 부분이 존재하면 댓글로 알려주세요.
빠른 처리 하도록 하겠습니다.
티스토리 앱으로는 댓글 이용이 불가능 하므로 웹 브라우저로 봐 주세요
(URL : http://junprogramer.tistory.com/)
읽어주셔서 감사합니다.
'잡다한 기술' 카테고리의 다른 글
[딥러닝/머신러닝] 딥러닝. 머신러닝 이란? (0) | 2018.12.13 |
---|---|
[node.js] es8 async/await 사용하기 (0) | 2018.11.07 |
[안드로이드] 프래그먼트 작업 (0) | 2018.10.29 |
[Python] 파이썬으로 만든 API에서 파일을 가져오는 방법 (0) | 2018.10.17 |
[python] 파이썬에서 Mysql 연동하는 방법(pymysql 사용법) (0) | 2018.10.17 |