【问题标题】:Android preferences in tab fragment标签片段中的 Android 首选项
【发布时间】: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)
    }

}

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    我通过将与 SettingsFragment 对应的布局文件的根元素更改为带有 id view_settings 的androidx.drawerlayout.widget.DrawerLayout 并将.replace(android.R.id.content, SettingsFragmentCompat()) 更改为.replace(R.id.view_settings, SettingsFragmentCompat()) 来解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2017-07-12
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 2016-04-26
      • 1970-01-01
      • 2013-04-27
      相关资源
      最近更新 更多