不同设备上不同的SeekBar垂直填充

时间:2018-01-20 15:38:55

标签: android padding seekbar

我遇到了Seekbar垂直填充的问题。我尝试通过XML或.setPadding(...)的代码将其设置为8dp,但在运行时,此值在不同的设备上是不同的。两种设备都具有相同的分辨率和密度。

以下是两个屏幕截图:

Xiaomi Redmi Note 3 Pro,API 22 Xiaomi Redmi Note 3 Pro, API 22

Xiaomi Redmi Note 4X,API 24 Xiaomi Redmi Note 4X, API 24

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上测试这个解决方案,我不确定这是一个好方法。您如何看待这个解决方案?无论如何,是否有人知道为什么会出现所描述的问题?

0 个答案:

没有答案