【问题标题】:How do I set showSeekBarValue to true in Android?如何在 Android 中将 showSeekBarValue 设置为 true?
【发布时间】:2017-05-28 19:34:54
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: android seekbar android-seekbar seekbarpreference


    【解决方案1】:

    在应用程序的 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"
        />
    

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

    【讨论】:

    • 是的,我确实已经使用了 SeekBarPreference - 它工作正常,只是没有显示任何值。对不起,但这个答案对我没有任何帮助。不过,我感谢您的努力!
    • 我想通了。由于评论太长了,我还是决定将其发布为答案,希望有人可以修改它以最终获得一个正常运行的 SeekBarPreference ,您无需在每次更改时调用 setTitle() 以反映价值。 ..
    【解决方案2】:

    你需要使用来自android.support.v7.preferencePreferenceScreen

    <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>
    

    还有来自android.support.v7.preferencePreferenceFragmentCompat

    import android.support.v7.preference.PreferenceFragmentCompat
    
    class SettingsFragment: PreferenceFragmentCompat() {
    
        override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
            addPreferencesFromResource(R.xml.preferences)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 2016-02-05
      • 2020-06-04
      • 2010-12-12
      • 1970-01-01
      • 2021-02-07
      相关资源
      最近更新 更多