Android SeekBarReference显示SeekBarValue值未正确显示

Android SeekBarReference显示SeekBarValue值未正确显示,android,android-support-library,android-preferences,Android,Android Support Library,Android Preferences,我正在尝试从android.support.v7.preference使用,并且我希望显示当前值。有一个属性showSeekBarValue使这成为可能。虽然显示了该值,但似乎保存该值的TextView没有正确设置样式,并且不幸地隐藏了部分值 这是我的首选项xml: <android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" x

我正在尝试从android.support.v7.preference使用,并且我希望显示当前值。有一个属性showSeekBarValue使这成为可能。虽然显示了该值,但似乎保存该值的
TextView
没有正确设置样式,并且不幸地隐藏了部分值

这是我的首选项xml:

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

有什么我做错了吗?

您好,请查看下面的url以了解您的要求


我想布局的高度是固定的。如果你使用wrap\u content,希望它可以通过改变高度来工作,否则url可能会对你有所帮助。

我查看了库代码和布局(preference\u widget\u seekbar.xml),textView上设置的高度是
match\u parent
,而parent的高度是
wrap\u content
。 将textView的高度设置为
wrap\u content
可以解决此问题

这是我的
设置片段的
视图创建的

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

        }
    }
}
覆盖已创建的视图(视图:视图,savedInstanceState:Bundle?){
super.onViewCreated(视图,savedInstanceState)
listView.viewTreeObserver.addOnDrawListener{
val sizePref=findPreference(getString(R.string.size))
val预视图:视图?=listView.layoutManager.findViewByPosition(sizePref.order)
预视图?应用{
//这是解决办法
findViewById(参见kbar_值)。应用{
layoutParams=LinearLayout.layoutParams(换行内容,换行内容)
}
//另一个视觉上的改进
findViewById(seekbar)。应用{
(layoutParams作为LinearLayout.layoutParams)。应用{
重力=重力。重心垂直
}
}
}
}
}

图片太大,甚至不需要25美分。请下次调整图像。博客帖子错误。seekbar偏爱android。检查有问题的链接
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
                }
            }

        }
    }
}