Skip to content

Commit 6f3e5e3

Browse files
Issue: callstack#170 Android: Apply slider padding from css
1 parent 45c2a54 commit 6f3e5e3

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

src/android/src/main/java/com/reactnativecommunity/slider/ReactSliderManager.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.facebook.react.uimanager.UIManagerModule;
2424
import com.facebook.react.uimanager.ViewProps;
2525
import com.facebook.react.uimanager.annotations.ReactProp;
26+
import com.facebook.react.uimanager.annotations.ReactPropGroup;
2627
import com.facebook.yoga.YogaMeasureFunction;
2728
import com.facebook.yoga.YogaMeasureMode;
2829
import com.facebook.yoga.YogaMeasureOutput;
@@ -31,6 +32,7 @@
3132
import java.util.List;
3233
import java.util.Map;
3334
import javax.annotation.Nullable;
35+
import android.content.res.Resources;
3436

3537
/**
3638
* Manages instances of {@code ReactSlider}.
@@ -229,6 +231,33 @@ public void setAccessibilityIncrements(ReactSlider view, ReadableArray accessibi
229231
view.setAccessibilityIncrements(stringList);
230232
}
231233

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+
232261
@Override
233262
protected void addEventEmitters(final ThemedReactContext reactContext, final ReactSlider view) {
234263
view.setOnSeekBarChangeListener(ON_CHANGE_LISTENER);

0 commit comments

Comments
 (0)