ビューでカスタムサムドローアブルを使用する場合SeekBar
、サムドローアブルはビューの左端と右端でクリップされます。
この動作を修正するにはどうすればよいですか?
ビューでカスタムサムドローアブルを使用する場合SeekBar
、サムドローアブルはビューの左端と右端でクリップされます。
この動作を修正するにはどうすればよいですか?
これは、親指の幅の半分に設定して修正できるはずです(密度に依存しない単位を使用することを忘れないpaddingLeft
でくださいpaddingRight
) 。SeekBar
を呼び出すことにより、シークバーの親指のエッジで許可されるスペースを制御することもできますsetThumbOffset
。
私は自分でこの問題に遭遇しました。SeekBarのデフォルトのスタイルで8px"correct"
に設定されているため、変更することにしたと思います。android:thumbOffset
デフォルトのSeekBarには、次の設定を使用しましたが、正常に機能します。
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:thumbOffset="8dp"
明確にするためだけに。
私が見たいくつかの場所で
android:thumbOffset="8dp"
いくつかの
android:thumbOffset="8px"
だから私はソースコードを見ました。これがオリジナルスタイルです
<style name="Widget.SeekBar">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
<item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item>
<item name="android:minHeight">20dip</item>
<item name="android:maxHeight">20dip</item>
<item name="android:thumb">@android:drawable/seek_thumb</item>
<item name="android:thumbOffset">8dip</item>
<item name="android:focusable">true</item>
</style>
から
デフォルトのシークバーの親指の下部がクリップされていました。ここでの修正はどれも機能しませんでした。私は使用することになった
android:clipToPadding="false"
親ビューで。これで問題は解決しました。
<androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progress_loan_period"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:progressDrawable="@drawable/seek_bar"
android:thumb="@drawable/ic_slider"
android:paddingStart="@dimen/dp_0"
android:paddingEnd="@dimen/dp_0"
android:thumbOffset="-0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_loan_period" />
これで仕事は終わります
何も機能しませんでしたが、親指の色を親レイアウトの背景色とは異なる色に変更しただけで、機能しました。