ホーム
2022.7.21

kotlin Fragmentを切り替える

MainActivityにFragmentContainerViewを貼り付け、
2つの貼り付けたボタンを押すことで
表示するFragmentを切り替えます。

2つFragmentを追加しました。
※fragmentContainerViewを貼り付けるためには
1つ以上のFragmentが存在する必要があります。

BlankFragmentA.kt, BlankFragmentB.kt

package com.example.samplefragment

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup

class BlankFragmentA : Fragment() {

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

}

識別できるようにそれぞれの.xmlのテキストビューのtextを変更しました。

MainActivity.kt

package com.example.samplefragment

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.samplefragment.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)

binding.btnA.setOnClickListener {
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(binding.fragmentContainerView.id, BlankFragmentA())
transaction.commit()
}

binding.btnB.setOnClickListener {
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(binding.fragmentContainerView.id, BlankFragmentB())
transaction.commit()
}

}
}
supportFragmentManagerを用いて表示されるfragmentを置き換えています。