7Rアプリ

プログラミングで詰まったことなど書いてます

kotlinでFragmentを書いてみる時に見るべき所

kotlinでFragmentを書いてみる

何度も何度もつまづくので、触る場所だけをピックアップしました。

 

使うファイル

MainActivity.kt
activity_main.xml

 

WebViewFragment.kt
fragment_web_view.xml

使うファイルと見る場所

MainActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {

fragmentbutton.setOnClickListener{
 val transaction = supportFragmentManager.beginTransaction()
 transaction.add(R.id.fragment_layout, WebViewFragment.createInstance())
 transaction.addToBackStack(null)
 transaction.commit()
 }

}

 


class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fragmentbutton.setOnClickListener{
val transaction = supportFragmentManager.beginTransaction()
transaction.add(R.id.fragment_layout, WebViewFragment.createInstance())
transaction.addToBackStack(null)
transaction.commit()
}
}
}

 

 

WebViewFragment.kt

companion object {
    fun createInstance(): WebViewFragment {
    return WebViewFragment()
    }
}

override fun onCreateView(

return inflater.inflate(R.layout.fragment_web_view, container, false)

)

 

 

class WebViewFragment : Fragment() {
// TODO: Rename and change types of parameters
private var param1: String? = null
private var param2: String? = null

companion object {
fun createInstance(): WebViewFragment {
return WebViewFragment()
}
}

// → Fragment生成時にシステムが呼び出す(必須)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
}

// → Fragmentが初めてUIを描画する時にシステムが呼び出す(必須)
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_web_view, container, false)
}

// Viewの生成が完了した後に呼ばれる
// UIパーツの設定などを行う
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

super.onViewCreated(view, savedInstanceState)
top_text.text = "berwpfiuwrbfpuhaeriugfh8"
}
}