A Slider
creates a full screen or pop-up overlay (depending on platform) that a user can control. There are two main Slider
layouts, one with a static footer and one with a dynamic footer.
The slider will persist on the screen until the timeout has elapsed or the user dismisses the slider by selecting a position or canceling.
A slider popup with a static footer displays a single, optional, footer message below the slider UI. A dynamic footer can show a different message for each slider position.
Copied to clipboard!
Slider slider = new Slider();
The number of selectable items on a horizontal axis.
Copied to clipboard!
// Must be a number between 2 and 26 slider.setNumTicks(5);
The initial position of slider control (cannot exceed numTicks).
Copied to clipboard!
// Must be a number between 1 and 26 slider.setPosition(1);
The header to display.
Copied to clipboard!
// Max length 500 chars slider.setSliderHeader("This is a Header");
The footer will have the same message across all positions of the slider.
Copied to clipboard!
// Max length 500 chars slider.setSliderFooter(Collections.singletonList("Static Footer"));
This type of footer will have a different message displayed for each position of the slider. The footer is an optional parameter. The footer message displayed will be based off of the slider's current position. The footer array should be the same length as numTicks
because each footer must correspond to a tick value. Or, you can pass null
to have no footer at all.
Copied to clipboard!
// Array length 1 - 26, Max length 500 chars slider.setSliderFooter(Arrays.asList("Footer 1","Footer 2","Footer 3"));
An ID for this specific slider to allow cancellation through the CancelInteraction
RPC. The ScreenManager
takes cancel ids 0 - 10000, so ensure any cancel id that you set is outside of that range.
Copied to clipboard!
slider.setCancelID(10045);
Copied to clipboard!
slider.setOnRPCResponseListener(new OnRPCResponseListener() { @Override public void onResponse(int correlationId, RPCResponse response) { if (response.getSuccess()) { SliderResponse sliderResponse = (SliderResponse) response; DebugTool.logInfo(TAG, "Slider Position Set: " + sliderResponse.getSliderPosition()); } } }); sdlManager.sendRPC(slider);
You can dismiss a displayed slider before the timeout has elapsed by dismissing either a specific slider or the current slider.
If connected to older head units that do not support this feature, the cancel request will be ignored, and the slider will persist on the screen until the timeout has elapsed or the user dismisses by selecting a position or canceling.
Copied to clipboard!
// `cancelID` is the ID that you assigned when creating the slider CancelInteraction cancelInteraction = new CancelInteraction(FunctionID.SLIDER.getId(), cancelID); cancelInteraction.setOnRPCResponseListener(new OnRPCResponseListener() { @Override public void onResponse(int correlationId, RPCResponse response) { if (response.getSuccess()){ DebugTool.logInfo(TAG, "Slider was dismissed successfully"); } } }); sdlManager.sendRPC(cancelInteraction);
Copied to clipboard!
CancelInteraction cancelInteraction = new CancelInteraction(FunctionID.SLIDER.getId()); cancelInteraction.setOnRPCResponseListener(new OnRPCResponseListener() { @Override public void onResponse(int correlationId, RPCResponse response) { if (response.getSuccess()){ DebugTool.logInfo(TAG, "Slider was dismissed successfully"); } } }); sdlManager.sendRPC(cancelInteraction);