我遇到了Seekbar垂直填充的问题。我尝试通过XML或.setPadding(...)
的代码将其设置为8dp,但在运行时,此值在不同的设备上是不同的。两种设备都具有相同的分辨率和密度。
以下是两个屏幕截图:
Xiaomi Redmi Note 3 Pro,API 22
XML:
<android.support.v7.widget.AppCompatSeekBar
android:id="@+id/playback_speed_slider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="4"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:layout_below="@id/playback_speed_title"/>
为什么会这样?如何使垂直填充相同?
谢谢!
更新 我已经通过API 19,23和24上的模拟器测试了应用程序,并决定做一个简单的解决方法:
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
playbackSpeedSlider.setPadding(2 * padding, padding, 2 * padding, padding);
else
playbackSpeedSlider.setPadding(2 * padding, 0, 2 * padding, 0);
似乎对我来说它解决了这个问题,但我没有在所有支持的API上测试这个解决方案,我不确定这是一个好方法。您如何看待这个解决方案?无论如何,是否有人知道为什么会出现所描述的问题?