@@ -63,7 +63,7 @@ public class PowerSpinnerView : AppCompatTextView, DefaultLifecycleObserver {
6363 PowerspinnerLayoutBodyBinding .inflate(LayoutInflater .from(context), null , false )
6464
6565 /* * PopupWindow for creating the spinner. */
66- private val spinnerWindow: PopupWindow
66+ public val spinnerWindow: PopupWindow
6767
6868 /* * Spinner is showing or not. */
6969 public var isShowing: Boolean = false
@@ -76,6 +76,9 @@ public class PowerSpinnerView : AppCompatTextView, DefaultLifecycleObserver {
7676 /* * An adapter for composing items of the spinner. */
7777 private var adapter: PowerSpinnerInterface <* > = DefaultSpinnerAdapter (this )
7878
79+ /* * A padding values for the content of the spinner. */
80+ private val padding: PowerSpinnerPaddings = PowerSpinnerPaddings ()
81+
7982 /* * The arrow will be animated or not when show and dismiss the spinner. */
8083 public var arrowAnimate: Boolean = true
8184
@@ -342,6 +345,36 @@ public class PowerSpinnerView : AppCompatTextView, DefaultLifecycleObserver {
342345 }
343346 }
344347
348+ if (hasValue(R .styleable.PowerSpinnerView_spinner_popup_top_padding )) {
349+ padding.top =
350+ getDimensionPixelSize(R .styleable.PowerSpinnerView_spinner_popup_top_padding , 0 )
351+ }
352+
353+ if (hasValue(R .styleable.PowerSpinnerView_spinner_popup_end_padding )) {
354+ padding.end =
355+ getDimensionPixelSize(R .styleable.PowerSpinnerView_spinner_popup_end_padding , 0 )
356+ }
357+
358+ if (hasValue(R .styleable.PowerSpinnerView_spinner_popup_bottom_padding )) {
359+ padding.bottom =
360+ getDimensionPixelSize(R .styleable.PowerSpinnerView_spinner_popup_bottom_padding , 0 )
361+ }
362+
363+ if (hasValue(R .styleable.PowerSpinnerView_spinner_popup_start_padding )) {
364+ padding.start =
365+ getDimensionPixelSize(R .styleable.PowerSpinnerView_spinner_popup_start_padding , 0 )
366+ }
367+
368+ if (hasValue(R .styleable.PowerSpinnerView_spinner_popup_padding )) {
369+ val value = getDimensionPixelSize(R .styleable.PowerSpinnerView_spinner_popup_padding , 0 )
370+ padding.apply {
371+ top = value
372+ end = value
373+ bottom = value
374+ start = value
375+ }
376+ }
377+
345378 if (hasValue(R .styleable.PowerSpinnerView_spinner_arrow_padding )) {
346379 _arrowPadding =
347380 getDimensionPixelSize(R .styleable.PowerSpinnerView_spinner_arrow_padding , _arrowPadding )
@@ -516,17 +549,12 @@ public class PowerSpinnerView : AppCompatTextView, DefaultLifecycleObserver {
516549 }
517550 }
518551 binding.body.apply {
519- if (this @PowerSpinnerView.spinnerPopupBackground == null ) {
520- background = this @PowerSpinnerView.background
552+ background = if (this @PowerSpinnerView.spinnerPopupBackground == null ) {
553+ this @PowerSpinnerView.background
521554 } else {
522- background = this @PowerSpinnerView.spinnerPopupBackground
555+ this @PowerSpinnerView.spinnerPopupBackground
523556 }
524- setPadding(
525- this .paddingLeft,
526- this .paddingTop,
527- this .paddingRight,
528- this .paddingBottom
529- )
557+ setPaddingRelative(padding.start, padding.top, padding.end, padding.bottom)
530558 if (this @PowerSpinnerView.showDivider) {
531559 val decoration = DividerItemDecoration (context, DividerItemDecoration .VERTICAL )
532560 val shape = GradientDrawable ().apply {
0 commit comments