Я работаю с простым заданием, имеющим два фрагмента. Оба фрагмента имеют searchView как пункт меню. Проблема в том, что если я разверну поисковое представление в первом фрагменте, оно развернется во втором фрагменте и наоборот; чего я не хочу.
Фрагменты,
class TitleScreen : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_title_screen, container, false)
setHasOptionsMenu(true)
view.findViewById<Button>(R.id.play_btn).setOnClickListener {
Navigation.findNavController(view).navigate(R.id.action_title_screen_to_register)
}
return view
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.search, menu)
super.onCreateOptionsMenu(menu, inflater)
}
}
class Register : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_register, container, false)
setHasOptionsMenu(true)
view.findViewById<Button>(R.id.signup_btn).setOnClickListener {
Navigation.findNavController(view).navigate(R.id.action_register_to_match)
}
return view
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.search, menu)
super.onCreateOptionsMenu(menu, inflater)
}
}
Меню
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
android:icon="@drawable/ic_search_24px"
android:title="search"
app:showAsAction="always|collapseActionView" />
</menu>
Навигация,
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
app:startDestination="@+id/title_screen">
<fragment
android:id="@+id/title_screen"
android:name="com.example.android.navigationsample.TitleScreen"
android:label="fragment_title_screen"
tools:layout="@layout/fragment_title_screen">
<action
android:id="@+id/action_title_screen_to_register"
app:destination="@id/register"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"/>
</fragment>
<fragment
android:id="@+id/register"
android:name="com.example.android.navigationsample.Register"
android:label="fragment_register"
tools:layout="@layout/fragment_register"/>
</navigation>
Как сохранить меню свернутым в следующем фрагменте? Заранее спасибо.