В моем приложении три вкладки (фрагменты), одна из которых должна быть вкладкой настроек. Я хотел бы использовать библиотеку настроек AndroidX для этой вкладки настроек.
Я могу открыть вкладку настроек и изменить настройки, однако, как только я однажды открыл вкладку настроек, нижняя панель навигации больше не работает. Когда я закрываю и перезапускаю приложение, настройки сохраняются. Я думаю это потому, что .replace(android.R.id.content, SettingsFragmentCompat())
заменяет всю активность, включая нижнюю панель навигации.
Как правильно загрузить фрагмент предпочтения во фрагмент вкладки?
SettingsFragment.kt ( фрагмент вкладки)
package net.htlgrieskirchen.jheschl17.hypernote.ui.settings
import android.app.Activity
import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import net.htlgrieskirchen.jheschl17.hypernote.R
class SettingsFragment : Fragment() {
private lateinit var view1: View
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
view1 = inflater.inflate(R.layout.fragment_settings, container, false)
requireActivity().supportFragmentManager
.beginTransaction()
.replace(android.R.id.content, SettingsFragmentCompat())
.commit()
return view1
}
}
SettingsFragmentCompat.kt (android шаблон)
package net.htlgrieskirchen.jheschl17.hypernote.ui.settings
import android.os.Bundle
import androidx.preference.PreferenceFragmentCompat
import net.htlgrieskirchen.jheschl17.hypernote.R
class SettingsFragmentCompat : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences, rootKey)
}
}