|
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