|
23 | 23 | import com.facebook.react.uimanager.UIManagerModule; |
24 | 24 | import com.facebook.react.uimanager.ViewProps; |
25 | 25 | import com.facebook.react.uimanager.annotations.ReactProp; |
| 26 | +import com.facebook.react.uimanager.annotations.ReactPropGroup; |
26 | 27 | import com.facebook.yoga.YogaMeasureFunction; |
27 | 28 | import com.facebook.yoga.YogaMeasureMode; |
28 | 29 | import com.facebook.yoga.YogaMeasureOutput; |
|
31 | 32 | import java.util.List; |
32 | 33 | import java.util.Map; |
33 | 34 | import javax.annotation.Nullable; |
| 35 | +import android.content.res.Resources; |
34 | 36 |
|
35 | 37 | /** |
36 | 38 | * Manages instances of {@code ReactSlider}. |
@@ -229,6 +231,33 @@ public void setAccessibilityIncrements(ReactSlider view, ReadableArray accessibi |
229 | 231 | view.setAccessibilityIncrements(stringList); |
230 | 232 | } |
231 | 233 |
|
| 234 | + public static int dpToPx(int dp) { |
| 235 | + return (int) (dp * Resources.getSystem().getDisplayMetrics().density); |
| 236 | + } |
| 237 | + |
| 238 | + public static int pxToDp(int px) { |
| 239 | + return (int) (px / Resources.getSystem().getDisplayMetrics().density); |
| 240 | + } |
| 241 | + |
| 242 | + @ReactPropGroup(names = { |
| 243 | + ViewProps.PADDING, |
| 244 | + ViewProps.PADDING_LEFT, |
| 245 | + ViewProps.PADDING_TOP, |
| 246 | + ViewProps.PADDING_RIGHT, |
| 247 | + ViewProps.PADDING_BOTTOM, |
| 248 | + }, customType = "Style") |
| 249 | + |
| 250 | + public void setStyle(ReactSlider view, int index, Integer value) { |
| 251 | + value = dpToPx(value); |
| 252 | + if(index == 0) { |
| 253 | + view.setPadding(value, value, value, value); |
| 254 | + } else { |
| 255 | + int array[] = {view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom()}; |
| 256 | + array[index - 1] = value; |
| 257 | + view.setPadding(array[0], array[1], array[2], array[3]); |
| 258 | + } |
| 259 | + } |
| 260 | + |
232 | 261 | @Override |
233 | 262 | protected void addEventEmitters(final ThemedReactContext reactContext, final ReactSlider view) { |
234 | 263 | view.setOnSeekBarChangeListener(ON_CHANGE_LISTENER); |
|
0 commit comments