2

我正在编写我的第一个 Android 应用程序,它涉及您设置分钟数的首选项,从 0 到 60。我使用了SeekBarPreference,它显示为一个简单的滑块,您确实可以左右滑动来编辑价值。偏好工作正常。

我想在 SeekBar 旁边(或附近某处)显示所选值,因为默认情况下,用户无法查看他们实际选择的内容。Stack Overflow 上有很多关于类似滑块和首选项的问题,但自去年 12 月发布的 25.1.0 版本以来,就有了 SeekBarPreference,它正是我所需要的:

showSeekBarValue通过将属性分别设置为 true 或 false,可以显示或禁用搜索栏值视图。

但是在下面列出的公共方法中,没有设置方法showSeekBarValue吗?有一种设置adjustable属性的方法setAdjustable(boolean adjustable),但是?

理想情况下,我只是android:showSeekBarValue="true"在我的SeekBarPreference标签中写preferences.xml,但这(显然)不起作用。

简而言之:我如何设置showSeekBarValue为 true?

4

2 回答 2

0

在应用程序的 build.gradle 中,我必须添加

implementation 'com.android.support:preference-v7:26.+

然后,修改 PreferenceScreen 的 xml 以包含一个应用命名空间:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">

最后,在xml里面,可以添加

<SeekBarPreference
    android:key="..."
    android:title="..."
    android:max="100"
    android:min="0"
    android:defaultValue="30"
    android:dependency="..."
    app:showSeekBarValue="true"
    />

这编译没有错误。公平地说,这不是一个完整的答案,因为在我的案例中没有显示任何价值,即使在这些步骤之后。但从形式上讲,它确实允许您以某种方式设置值。

于 2018-01-21T19:29:55.563 回答
0

您需要PreferenceScreenandroid.support.v7.preference使用

<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <SeekBarPreference
        android:key="size"
        android:title="Size"
        android:summary="size of progressBar in dp's"
        android:max="100"
        app:showSeekBarValue="true"
        android:defaultValue="25" />
</android.support.v7.preference.PreferenceScreen>

PreferenceFragmentCompat来自android.support.v7.preference

import android.support.v7.preference.PreferenceFragmentCompat

class SettingsFragment: PreferenceFragmentCompat() {

    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        addPreferencesFromResource(R.xml.preferences)
    }
}
于 2018-08-10T18:53:26.027 回答