持续创作,加快生长!这是我参与「日新方案 10 月更文挑战」的第12天,点击查看活动详情
接下来会对
Preference Library
官方库进行一个系列解说,本篇文章是Preference Library
系列的第一篇,主要是介绍Preference Library
是个啥以及其根本用法。
文章所用到的依靠如下:
implementation("androidx.preference:preference-ktx:1.2.0")
Preference Library
是干什么用的?
先看一段官方的解说:
简而言之,便是为了快速完成一个设置界面,并且默许经过SharedPreference
将设置相关的装备数据保存到本地文件中。
比方Android Studio中自带的AVD模拟器,设置中的开发人员选项
界面便是经过Preference Library
完成的:
Preference
是Preference 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
:设置项图标
咱们能够看下预览界面的显现效果:
接下来咱们看下如何将该xml
配应用到显现界面上。
创立一个SettingsFragment
,并承继Preference Library
供给的PreferenceFragmentCompat
,重写onCreatePreferences()
方法:
class SettingsFragment: PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.settings, rootKey)
}
}
调用setPreferencesFromResource()
方法将上面界说的settings.xml
设置进去。
接下来添加Fragment
到Activity
中即可:
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
瞥一眼
上面咱们只是单独介绍了一个SwitchPreferenceCompat
,接下来咱们看一看其他的Preference
设置项:
EditTextPreference
<EditTextPreference
app:summary="请输入一些内容吧"
app:key="edit"
app:title="修改内容" />
点击这个设置项弹出修改弹窗:
2.CheckBoxPreference
显现一个单选按钮:
<CheckBoxPreference
app:key="select"
app:summary="请挑选一些内容"
app:title="挑选" />
对应下面界面:
SeekBarPreference
显现一个进度条:
<SeekBarPreference
app:key="seekbar"
app:summary="显现进度条"
app:title="进度条" />
对应下面显现内容:
ListPreference
显现列表:
<ListPreference
app:entryValues="@array/list"
app:entries="@array/list"
app:key="list"
app:summary="下面是一个列表"
app:title="列表"/>
经过app:entryValues
和app:entries
引证列表数据:
<string-array name="list">
<item>列表第一条内容</item>
<item>列表第二条内容</item>
<item>列表第三条内容</item>
<item>列表第四条内容</item>
</string-array>
看下显现效果:
点这个设置项,会弹出下面弹窗:
上面主要是介绍几个常用的Preference
组件,其实还有其他的几个Preference
组件没有介绍,感兴趣的能够自行实践。
总结
本篇文章主要是介绍Preference Library
是干什么用的,以及其根本用法,终究弥补了一些常见的Preference
组件的使用,期望能对你所有协助。
Preference Library
还很多其他的用法,接下来的文章咱们会一步步的打开解说,终究经过实践,完成一个AVD模拟器中开发人员选项的界面。