TimePicker
TimePicker is a component that provides a dialog interface for time selection, supporting both dial and keyboard input modes with customizable styling.
| Type | Resource |
|---|---|
| Design | Figma |
| Mobile | Mobile Storybook |
| Code | Gitlab |

Usage
import id.co.biofarma.binduiandroid.components.timepicker.TimePickerval showPicker = remember { mutableStateOf(false) }
TimePicker(
label = "Meeting Time",
show = showPicker,
onTimeSelected = { time ->
// Handle time selection
}
)Examples
Radius (optional)
Adjusts the corner radius of the TimePicker dialog.

Time Format (optional)
Choose between 12-hour and 24-hour time formats.

Props
| Props | Required | Default | Type | Description |
|---|---|---|---|---|
| id | false | "" | String | Test tag identifier for the component |
| style | false | Modifier | Modifier | Custom modifier for styling |
| label | false | "" | String | Label text shown in the dialog header |
| radius | false | ”xs” | String | Corner radius size (“xs”, “sm”, “md”, “lg”) |
| defaultValue | false | LocalTime.now() | LocalTime | Initial time value |
| is24HourFormat | false | false | Boolean | Whether to use 24-hour format |
| onTimeSelected | false | (LocalTime) -> Unit | Callback when time is selected | |
| show | false | mutableStateOf(false) | MutableState<Boolean> | Controls the visibility of the dialog |
Notes
-
Dialog Interface
- Opens as a modal dialog with a customizable radius
- Provides both dial and keyboard input modes
- Toggle between input modes using the icon button
- Includes “CANCEL” and “OK” action buttons
-
Input Modes
- Dial mode: Traditional clock-face time selection
- Keyboard mode: Direct numeric input for hour and minute
- Switch between modes using the toggle icon in the bottom-left
-
Theming
- Automatically adapts to light/dark theme based on system settings
- Custom color scheme for various dialog elements
- Consistent typography using the design system’s fonts
- Configurable corner radius for different visual styles
-
State Management
- Uses
MutableStatefor controlling dialog visibility - Maintains time selection state internally
- Returns selected time through the
onTimeSelectedcallback - Preserves selected time until dialog is dismissed
- Uses
-
Best Practices
- Provide meaningful labels for better user understanding
- Handle the
onTimeSelectedcallback to process time selections - Use appropriate radius size based on your app’s design language
- Consider user preference when choosing between 12/24-hour formats
- Test the component using the provided test tag ID