COMPUTER/Kotlin

코틀린 스터디 중 기록

Menifest.xml

<activity android:name=".SplashActivity">
	<intent-filter>
		<action android:name="android.intent.action.MAIN"/>
		<category android:name="android.intent.category.LAUNCHER"/>
	</intent-filter>
</activity>
<activity android:name=".MainActivity"></activity>

SplashActivity.kt

class SplashActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_splash)

        startLoading()
    }
    private fun startLoading() {
        val handler = Handler()
        handler.postDelayed(Runnable {
            val intent = Intent(this, MainActivity::class.java)
            startActivity(intent)
            finish()
        }, 2000)
    }
}

'COMPUTER > Kotlin' 카테고리의 다른 글

코틀린 - TabLayout  (0) 2019.07.10

코틀린 - TabLayout

2019. 7. 10. 14:00

스터디 중 기록.

build.gradle

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.android.support:design:28.0.0'
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.circularreveal.CircularRevealRelativeLayout
    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">
    <android.support.v4.view.ViewPager
    android:id="@+id/viewpager_main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:tabMode="fixed"/>

    <android.support.design.widget.TabLayout
    android:id="@+id/tabs_main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"/>
</android.support.design.circularreveal.CircularRevealRelativeLayout>

탭 내부 fragment xml x 3

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:tools="http://schemas.android.com/tools"
             android:layout_width="match_parent"
             android:layout_height="match_parent">

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="First tab"
            android:textSize="40sp"/>

</FrameLayout>

탭 내부 fragment Kotlin x 3

class FirstFragment : Fragment() {


    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
return inflater!!.inflate(R.layout.fragment_first, container, false)
}

PagerAdapter Kotlin

class MyPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm){
    class FragmentInfo(val iconOnResId: Int, val iconOffResId: Int, val titleText: String, val fragment: Fragment)

    private val mFragmentInfoList = ArrayList<FragmentInfo>()

    fun addFragment(iconOnResID:Int, iconOffResID:Int, title: String, fragment:Fragment){
        val info = FragmentInfo(iconOnResID, iconOffResID, title,fragment)
        mFragmentInfoList.add(info)
    }

    override fun getItem(position: Int): Fragment {
        return mFragmentInfoList[position].fragment
    }

    override fun getCount(): Int {
        return mFragmentInfoList.size
//        return 3
    }

    override fun getPageTitle(position: Int): CharSequence {
        return mFragmentInfoList[position].titleText
    }

}

MainActivity Kotlin

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val fragmentAdapter = MyPagerAdapter(supportFragmentManager)

        fragmentAdapter.addFragment(R.drawable.home2,R.drawable.home,"Page11",FirstFragment())
        fragmentAdapter.addFragment(R.drawable.mypage2,R.drawable.mypage,"Page2",SecondFragment())
        fragmentAdapter.addFragment(R.drawable.soon2,R.drawable.soon,"Page3",ThirdFragment())
        viewpager_main.adapter = fragmentAdapter


        viewpager_main.addOnPageChangeListener(
            TabLayout.TabLayoutOnPageChangeListener(tabs_main))
        tabs_main.addOnTabSelectedListener(object:TabLayout.OnTabSelectedListener{
            override fun onTabSelected(tab: TabLayout.Tab) {
                var i = tab.position
                viewpager_main.currentItem = i
                tabIconSelect()
            }

            override fun onTabUnselected(tab: TabLayout.Tab) {
            }

            override fun onTabReselected(tab: TabLayout.Tab) {
            }
        })

        tabs_main.setupWithViewPager(viewpager_main)
        tabIconSelect()
    }

    fun tabIconSelect() {
        val tabBtnImgOff = intArrayOf(R.drawable.home, R.drawable.soon, R.drawable.mypage)
        val tabBtnImgOn = intArrayOf(R.drawable.home2, R.drawable.soon2, R.drawable.mypage2)

        for (i in 0..2) {
            val tab = tabs_main.getTabAt(i)!!
            if(tab.isSelected){
                tab.setIcon(tabBtnImgOn[i])
//                TabBtnText.get(i).setTextColor(resources.getColor(R.color.point))
            } else {
                tab.setIcon(tabBtnImgOff[i])
//                TabBtnText.get(i).setTextColor(resources.getColor(R.color.lightGray))
            }
        }
    }
}

참고 링크

https://m.blog.naver.com/PostView.nhn?blogId=pistolcaffe&logNo=220629248791&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

android design support library - TabLayout

이번 포스팅은 TabLayout 에 대한 내용입니다. 탭은 android 에서 앱의 최상위 탐색 수단 및 앱 내의 컨...

blog.naver.com

https://stackoverflow.com/questions/37235125/how-to-get-tab-click-event-in-activity-in-tablayout-android

 

How to get tab click event in activity in TabLayout android

This is implementation of onCreate function in my activity. I need to create the tabs dynamically. Here for simplicity i made 2 tabs. public class ActivityProductList extends AppCompatActivity { ...

stackoverflow.com

 

'COMPUTER > Kotlin' 카테고리의 다른 글

코틀린 - 로딩화면 만들기  (0) 2019.07.11

+ Recent posts