material-range-bar icon indicating copy to clipboard operation
material-range-bar copied to clipboard

It has problem in showing some ranges

Open mahdit83 opened this issue 8 years ago • 5 comments

Hi, good work for this cool library but I found a problem in showing data on pins. for Example if you set setTickStart=10,000 and setTickEnd=500,000 with setTickInterval=10,000 , range changes from 1000 to 5000 and think this part need some revisions. with regards

mahdit83 avatar Nov 27 '16 03:11 mahdit83

Hi, I just had same issue for one of my project. So as I checked the library and found text is trimming from below code.

private PinTextFormatter mPinTextFormatter = new PinTextFormatter() {
	@Override
	public String getText(String value) {
		if (value.length() > 4) {
			return value.substring(0, 4);
		} else {
			return value;
		}
	}
};

So you can tackle this issue from below method.

mRangeBarPrice.setPinTextListener(new RangeBar.OnRangeBarTextListener() {
	@Override
	public String getPinValue(RangeBar rangeBar, int tickIndex) {
		int pinValue = Math.round((float) mRangeBarPrice.getTickInterval() * tickIndex);

		Log.d(TAG, "getPinValue - tickIndex", String.valueOf(tickIndex));
		Log.d(TAG, "getPinValue", String.valueOf(pinValue));

		return Integer.toString(pinValue);
	}
});

Hope it helps.

pasaneramusugoda avatar Jan 11 '17 13:01 pasaneramusugoda

thanks @pasaneramusugoda

tank777 avatar Mar 16 '17 11:03 tank777

it makes the start from 0? rangebar.setPinTextListener(new RangeBar.OnRangeBarTextListener() { @Override public String getPinValue(RangeBar rangeBar, int tickIndex) { int pinValue = Math.round((float) rangebar.getTickInterval() * (tickIndex+1));

           // Log.d(d, "getPinValue - tickIndex", String.valueOf(tickIndex));
           // Log.d(d, "getPinValue", String.valueOf(pinValue));
            //range_value.setText(String.valueOf(rangebar.getTickInterval()));
            return Integer.toString(pinValue);
        }
    });

*(tickIndex+1)); this helped me

shreyan007 avatar Jun 05 '17 12:06 shreyan007

@pasaneramusugoda Your solution doesn't work with for example:
min: 100000, max: 1000000000 It gives: getPinValue - tickIndex: 999900032

Drjacky avatar Oct 23 '17 08:10 Drjacky

The correct answer is: shubham192's solution

Drjacky avatar Oct 23 '17 11:10 Drjacky