首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SeekBarPreference showSeekBarValue值没有正确显示

SeekBarPreference showSeekBarValue值没有正确显示
EN

Stack Overflow用户
提问于 2018-08-10 19:21:34
回答 2查看 2K关注 0票数 1

我尝试使用android.Support.v7.Preferences中的SeekBarPreference,并希望显示当前值。有一个属性showSeekBarValue使这成为可能。该值显示出来了,但是保存该值的TextView似乎没有正确的样式,而值的一部分不幸被隐藏了。

这是我的首选项xml:

代码语言:javascript
复制
<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>

这是我喜欢的片段:

代码语言:javascript
复制
import android.support.v7.preference.PreferenceFragmentCompat

class SettingsFragment: PreferenceFragmentCompat() {

    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        addPreferencesFromResource(R.xml.preferences)
    }
}

我做错什么了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-13 08:07:27

我查看了库代码,在布局(preference_widget_seekbar.xml)中,在textView上设置的高度是match_parent,而父级的高度是wrap_content。将textView的高度设置为wrap_content解决了这个问题。

我是onViewCreated of my SettingsFragment

代码语言:javascript
复制
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    listView.viewTreeObserver.addOnDrawListener {
        val sizePref = findPreference(getString(R.string.size))

        val prefView: View? = listView.layoutManager.findViewByPosition(sizePref.order)
        prefView?.apply {
            //Here is the fix
            findViewById<TextView>(seekbar_value).apply {
                layoutParams = LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)
            }
            //another visual improvement
            findViewById<AppCompatSeekBar>(seekbar).apply {
                (layoutParams as LinearLayout.LayoutParams).apply {
                    gravity = Gravity.CENTER_VERTICAL
                }
            }

        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2018-08-10 19:28:21

请检查下面的url以了解您的要求。

https://v4all123.blogspot.com/2017/12/simple-example-of-seekbarpreference-in.html

我想布局高度是固定的。如果你使用wrap_content,希望它能通过改变高度来工作,否则网址可能会帮助你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51792894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档