Kotlin实现动态添加Fragment碎片到FrameLayout布局中

Android中使用kotlin语言进行实现动态的Fragement碎片添加到布局中
前面有一章(http://blog.csdn.net/mysupergirl/article/details/72677423)介绍过kotlin实现Activity之间的跳转和控件的获取,本章介绍kotlin实现碎片的添加
效果图:

Kotlin实现动态添加Fragment碎片到FrameLayout布局中_第1张图片

  • 创建主布局 activity_view_pager.xml

<LinearLayout 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"
    android:orientation="vertical"
    tools:context="com.eq.tanchudemo.FrameLayoutActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="horizontal">
        <Button
            android:id="@+id/add_one"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="第一个碎片"/>
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
        <Button
            android:id="@+id/add_two"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="第二个碎片"/>
    LinearLayout>
    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

LinearLayout>
  • 创建两个继承Fragment类,如下:
package com.eq.tanchudemo


import android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup


/**
 * A simple [Fragment] subclass.
 */
class OneFragment : Fragment() {


    override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {

        return inflater!!.inflate(R.layout.fragment_one, container, false)
    }

}
  • 重点在主代码中的点击事件后碎片的填充,代码中都有相应的注解,直接上代码:
    FrameLayoutActivity.kt :
package com.eq.tanchudemo

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.View
import kotlinx.android.synthetic.main.activity_view_pager.*

class FrameLayoutActivity : AppCompatActivity() {

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

        //对布局中的button添加监听,点击填充碎片到fragmentlayout
        add_one.setOnClickListener(object : View.OnClickListener {
            override fun onClick(v: View?) {
                //开始填充碎片
                supportFragmentManager.beginTransaction().replace(R.id.frameLayout,OneFragment()).commit()
            }
        })

        add_two.setOnClickListener(object : View.OnClickListener {
            override fun onClick(v: View?) {
                supportFragmentManager.beginTransaction().replace(R.id.frameLayout,TwoFragment()).commit()
            }
        })
    }
}

附上代码地址:http://download.csdn.net/detail/mysupergirl/9870477

希望对一起学习的朋友们有所帮助,代码中有不对的地方请指正。。

你可能感兴趣的:(kotlin,android)