Android SeekBarReference显示SeekBarValue值未正确显示
我正在尝试从android.support.v7.preference使用,并且我希望显示当前值。有一个属性showSeekBarValue使这成为可能。虽然显示了该值,但似乎保存该值的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
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
}
}
}
}
}