持续创作,加快生长!这是我参与「日新方案 10 月更文挑战」的第12天,点击查看活动详情

接下来会对Preference Library官方库进行一个系列解说,本篇文章是Preference Library系列的第一篇,主要是介绍Preference Library是个啥以及其根本用法。

文章所用到的依靠如下:

implementation("androidx.preference:preference-ktx:1.2.0")

Preference Library是干什么用的?

先看一段官方的解说:

练气篇:设置界面的开发利器Preference Library,了解一下~

简而言之,便是为了快速完成一个设置界面,并且默许经过SharedPreference将设置相关的装备数据保存到本地文件中。

比方Android Studio中自带的AVD模拟器,设置中的开发人员选项界面便是经过Preference Library完成的:

练气篇:设置界面的开发利器Preference Library,了解一下~

PreferencePreference Library的基础构建元素,经过各种各样的Preference构成一个个设置项来显现在设置界面。这个设置项的界说能够在xml中界说,也能够经过代码动态创立添加。

本文主要是经过在xml中构建Preference的层次结构,来快速完成简略的设置界面。

Preference Library根本使用

首要创立一个settings.xml文件,然后经过SwitchPreferenceCompat创立一个开关样式的设置项:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <SwitchPreferenceCompat
        app:icon="@drawable/ic_launcher_background"
        app:summary="显现一些内容"
        app:key="display"
        app:title="显现" />
</PreferenceScreen>

这里说下SwitchPreferenceCompat几个根本属性(其他的各种Preference也会有相同的属性):

  • app:key:设置项的标识,同时也是设置项装备写入到SharedPreference中的key

  • app:title: 设置项标题

  • app:summary:设置项内容描述

  • app:icon:设置项图标

咱们能够看下预览界面的显现效果:

练气篇:设置界面的开发利器Preference Library,了解一下~

接下来咱们看下如何将该xml配应用到显现界面上。

创立一个SettingsFragment,并承继Preference Library供给的PreferenceFragmentCompat,重写onCreatePreferences()方法:

class SettingsFragment: PreferenceFragmentCompat() {
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        setPreferencesFromResource(R.xml.settings, rootKey)
    }
}

调用setPreferencesFromResource()方法将上面界说的settings.xml设置进去。

接下来添加FragmentActivity中即可:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    mBinding = ActivityDialogBinding.inflate(layoutInflater)
    setContentView(mBinding.root)
    supportFragmentManager.commit {
        replace(mBinding.contentFl, SettingsFragment())
    }
}

commit()是官方core-ktx供给的扩展库,使得咱们不必关怀commit()操作:

练气篇:设置界面的开发利器Preference Library,了解一下~

终究咱们看下在界面中的显现效果:

练气篇:设置界面的开发利器Preference Library,了解一下~

其他Preference瞥一眼

上面咱们只是单独介绍了一个SwitchPreferenceCompat,接下来咱们看一看其他的Preference设置项:

  1. EditTextPreference
<EditTextPreference
    app:summary="请输入一些内容吧"
    app:key="edit"
    app:title="修改内容" />

练气篇:设置界面的开发利器Preference Library,了解一下~

点击这个设置项弹出修改弹窗:

练气篇:设置界面的开发利器Preference Library,了解一下~

2.CheckBoxPreference 显现一个单选按钮

<CheckBoxPreference
    app:key="select"
    app:summary="请挑选一些内容"
    app:title="挑选" />

对应下面界面:

练气篇:设置界面的开发利器Preference Library,了解一下~

  1. SeekBarPreference

显现一个进度条:

<SeekBarPreference
    app:key="seekbar"
    app:summary="显现进度条"
    app:title="进度条" />

对应下面显现内容:

练气篇:设置界面的开发利器Preference Library,了解一下~

  1. ListPreference

显现列表:

<ListPreference
    app:entryValues="@array/list"
    app:entries="@array/list"
    app:key="list"
    app:summary="下面是一个列表"
    app:title="列表"/>

经过app:entryValuesapp:entries引证列表数据:

<string-array name="list">
    <item>列表第一条内容</item>
    <item>列表第二条内容</item>
    <item>列表第三条内容</item>
    <item>列表第四条内容</item>
</string-array>

看下显现效果:

练气篇:设置界面的开发利器Preference Library,了解一下~

点这个设置项,会弹出下面弹窗:

练气篇:设置界面的开发利器Preference Library,了解一下~

上面主要是介绍几个常用的Preference组件,其实还有其他的几个Preference组件没有介绍,感兴趣的能够自行实践。

总结

本篇文章主要是介绍Preference Library是干什么用的,以及其根本用法,终究弥补了一些常见的Preference组件的使用,期望能对你所有协助。

Preference Library还很多其他的用法,接下来的文章咱们会一步步的打开解说,终究经过实践,完成一个AVD模拟器中开发人员选项的界面。