【发布时间】:2020-03-16 23:28:34
【问题描述】:
我的应用中有三个选项卡(片段),其中一个应该是设置选项卡。我想为此设置选项卡使用 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)
}
}
【问题讨论】: