【发布时间】:2021-01-03 01:43:51
【问题描述】:
我正在尝试在另一个片段中使用底页片段
所以 supportFragmentManager 在下面的代码中显示错误(因为它不适用于片段)
override fun onMapLongClick(point: LatLng) {
try {
CustomBottomSheetDialogFragment().apply {
show(supportFragmentManager, CustomBottomSheetDialogFragment.TAG)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
我试过了
* childSupportManager
* requireActivity().supportFragmentManager
* activity.supportFragmentManager
* parentFragmentManager
* (activity as AppCompatActivity).supportFragmentManager
没有任何效果
CustomBottomSheetDialogFragment
package com.example.weatherapp.ui.dashboard
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import com.example.weatherapp.R
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.android.synthetic.main.layout_modal_bottom_sheet.*
class CustomBottomSheetDialogFragment : BottomSheetDialogFragment() {
companion object {
const val TAG = "CustomBottomSheetDialogFragment"
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.layout_modal_bottom_sheet, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
firstButton.setOnClickListener {
//handle click event
Toast.makeText(context, "First Button Clicked", Toast.LENGTH_SHORT).show()
}
secondButton.setOnClickListener {
//handle click event
Toast.makeText(context, "Second Button Clicked", Toast.LENGTH_SHORT).show()
}
thirdButton.setOnClickListener {
//handle click event
Toast.makeText(context, "Third Button Clicked", Toast.LENGTH_SHORT).show()
}
}
}
显示错误
W/System.err: java.lang.IllegalStateException: Fragment CustomBottomSheetDialogFragment{37cafe5}
(1887523f-4ffe-4232-bacc-d4114dcfe8a4)} has not been attached yet.
at androidx.fragment.app.Fragment.getChildFragmentManager(Fragment.java:980)
at com.example.weatherapp.ui.dashboard.DashboardFragment.onMapLongClick(DashboardFragment.kt:163)
at com.google.android.gms.maps.zzz.onMapLongClick(Unknown Source:2)
at com.google.android.gms.maps.internal.zzao.dispatchTransaction(Unknown Source:5)
【问题讨论】:
-
请分享您的
CustomBottomSheetDialogFragment代码。
标签: android android-studio kotlin material-design