私の質問は、Google Navigation Component ライブラリの新しいライブラリのみに関連しているため、.addtobackstack などの通常のフラグメントには関連していません。
やりたいことを単純化しますが、私のアプリには +30 フラグメントがあります
親フラグメントと子があり、親フラグメントにはタブとリサイクラー ビューがあり、データは API から取得されます。RV アイテムをクリックすると、子フラグメントが開きます。親フラグメントに戻ったら、元のようにしたいので、データを再度ロードしたくありません。
私のテストは常に最初から再度リロードし、ビューを作成してからデータをロードします。新しいアクティビティを意図的に開いたときに、親アクティビティにはまだ独自のビューがあるようにしたいのです。
これは私のコードの一部ですが、問題がある可能性があります
val host: NavHostFragment = supportFragmentManager
.findFragmentById(R.id.main_activity_host_fragment) as NavHostFragment? ?: return
class ParentFragment : Fragment() {
var mEmail: String = ""
var mPassword: String = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
var rootView: View = inflater.inflate(R.layout.fragment_parent, container, false)
setupViews(rootView)
loadDataFromServer()
rootView.text_clickable_to_sign_up_from_sign_in.setOnClickListener {
findNavController().navigate(R.id.child_frag_dest, null, null)
}
return rootView
}}
...