|
| 1 | +--- |
| 2 | +title: Optimize for devices controls (preview) |
| 3 | +description: Learn which controls and properties are supported for device-optimized screens. |
| 4 | +author: anuitz |
| 5 | +ms.topic: conceptual |
| 6 | +ms.custom: canvas |
| 7 | +ms.reviewer: sericks |
| 8 | +ms.date: 11/14/2023 |
| 9 | +ms.subservice: canvas-maker |
| 10 | +ms.author: anuitz |
| 11 | +search.audienceType: |
| 12 | + - maker |
| 13 | +contributors: |
| 14 | + - sericks |
| 15 | + - anuitz |
| 16 | +--- |
| 17 | + |
| 18 | +# Optimize for devices controls (preview) |
| 19 | +[This article is prerelease documentation and is subject to change.] |
| 20 | + |
| 21 | +For a screen to be optimized for devices, it must use controls that are supported natively. You can filter the control **Insert** pane to only show device-optimized controls. |
| 22 | + |
| 23 | +:::image type="content" source="media/optimized-for-devices-control-filter.png" alt-text="The Insert pane is filtered to only show controls that are device-optimized."::: |
| 24 | + |
| 25 | +> [!Important] |
| 26 | +> - This is a preview feature. |
| 27 | +> - Preview features aren't meant for production use and may have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. |
| 28 | +
|
| 29 | +## Device-optimized controls |
| 30 | +The following controls are available for screens that are optimized for devices. All other controls are currently unsupported. |
| 31 | + |
| 32 | +[**Modern controls**](../maker/canvas-apps/controls/modern-controls/modern-controls-reference.md) |
| 33 | + - Button |
| 34 | + - Checkbox |
| 35 | + - Date picker |
| 36 | + - Form |
| 37 | + - Text |
| 38 | + - Text input |
| 39 | + - Toggle |
| 40 | + |
| 41 | + [**Controls**](../maker/canvas-apps/reference-properties.md) |
| 42 | + - Add picture |
| 43 | + - Barcode reader |
| 44 | + - Button |
| 45 | + - Camera |
| 46 | + - Check box |
| 47 | + - Circle |
| 48 | + - Container (horizontal and vertical included) |
| 49 | + - Form (edit and display) |
| 50 | + - Gallery (vertical, horizontal, flexible height) |
| 51 | + - Icon (all icons supported) |
| 52 | + - Image |
| 53 | + - Radio |
| 54 | + - Rectangle |
| 55 | + - Text input |
| 56 | + - Text label |
| 57 | + - Timer |
| 58 | + |
| 59 | +## Unsupported controls |
| 60 | + |
| 61 | +If a screen is set to be optimized for devices, but has an unsupported control, an error message in a box is displayed. |
| 62 | + |
| 63 | +:::image type="content" source="media/optimized-for-devices-control-error.png" alt-text="The error that shows when an unsupported control is on a screen set to optimize for devices."::: |
| 64 | + |
| 65 | +## Device-optimized properties |
| 66 | + |
| 67 | +Some properties must be specifically configured to be optimized for devices. For example, consider the [barcode reader](../maker/canvas-apps/controls/control-barcodereader.md) control. The maker can select **Scan Inline** for the **Scanning mode** property. In Power Apps Studio, when this mode is selected, the control displays as a warning box indicating the control only works on mobile devices. On a device, in a screen optimized for devices, the control displays a camera feed to enable barcode scanning. |
| 68 | + |
| 69 | +## Known limitations |
| 70 | + |
| 71 | +Note the following limitations with the optimize for devices feature. |
| 72 | + |
| 73 | + - Only the **Segoe UI** font is supported. If a control is using another font, it displays the Segoe UI font, instead. Due to the differences in fonts, this can result in the control taking up more or less space than expected. We recommend that you use the Segoe UI font for device-optimized screens. |
| 74 | + - The **Image** control, when showing an SVG, only supports the fit and stretch image position options. Its default behavior is to fit, if another option is selected. All other image types work as expected for all image positions. |
| 75 | + - In the **modern Text** control, the **Semi-bold** and **Medium** font weights aren't supported on Android devices. It displays a regular font weight, instead. |
| 76 | + - In the **modern Text input** control, the **Value** property, when set to a Power Fx variable, isn't displayed at first navigation. Instead, it shows the placeholder value until the user navigates away and back to the screen with the **modern Text input** control. |
| 77 | + - In the **modern Text input** control, the **OnChange** property is called twice when the control is exited, and then blurred. |
| 78 | + - In the **modern Text input** control, the **Validate state** property doesn't display a red border around the control. |
| 79 | + - In the **Image** control, the **Image rotation** property isn't supported. The image isn't rotated. |
| 80 | + - In the **Dropdown** and **Radio** control, the **Items** property doesn't support references to other controls. Items aren't shown if they're complex values, like references. |
| 81 | + - In the **modern Date picker** control, tapping on the control opens a modal with a calendar, instead of allowing users to type into the control directly. |
| 82 | + - In the **modern Date picker** control, the **Base palette color** and modern theme aren't applied on Android devices. Instead, it displays as the device's theme color. |
| 83 | + - In the **Button**, **Image**, **Label**, and **Icon** controls, the **SetFocus** Power Fx function doesn't support keyboard focus, only accessibility focus (for example, screen reader). |
| 84 | + - In **Horizontal and vertical containers**, the **Drop shadow** property isn't supported. Instead, containers display without drop shadow. |
| 85 | + - In **Horizontal and vertical containers**, the **Scroll** option only works for a single direction, depending on the **Wrap** property. If **Wrap** is off, the container is scrollable in the primary direction, otherwise it's scrollable in the secondary direction. |
| 86 | + - Multiple **Barcode reader** controls on a single screen aren't supported. |
| 87 | + - Multiple **Camera** controls on a single screen isn't supported. |
| 88 | + - In the **Camera** control, the **Display mode** property of the parent control isn't supported. For example, if the camera control is part of a form that is set to view mode, the camera might still be in edit mode. |
| 89 | + - On **Screen**, the **Background image** property isn't supported. |
0 commit comments