Class
AndroidMobileUserControl
Description
Used to embed Android Views (android.view.View) created via declares into the Xojo control hierarchy.
Properties
Name |
Type |
Read-Only |
Shared |
|---|---|---|---|
✓ |
|||
Methods
Name |
Parameters |
Returns |
Shared |
|---|---|---|---|
Events
Name |
Parameters |
Returns |
|---|---|---|
dark As Boolean |
||
g As Graphics |
||
Constants
These constants are designed to be used with the MobileUIControl to show icons at the Navigator and Library.
Name
Description
NavigatorIcon
This constant is used to override the icon of your control in the Navigator. Using the WebSDKIconConverter, place the Base64 icon data into the value of this constant.
LibraryIcon
This constant is used to override the icon of your control in the Library. Using the WebSDKIconConverter, place the Base64 icon data into the value of this constant.
Property descriptions
AndroidMobileUserControl.AccessibilityHint
AccessibilityHint As String
The accessibility hint is a longer description that is read aloud when VoiceOver is enabled.
Me.AccessibilityHint = "Click to calculate the value and display the next screen."Important
This property is not currently supported for Android.
AndroidMobileUserControl.AccessibilityLabel
AccessibilityLabel As String
The accessibility label of of a control is a short name that is read aloud when VoiceOver is enabled.
Me.AccessibilityLabel = "Calculate the value."
AndroidMobileUserControl.Enabled
Enabled As Boolean
Indicates whether the control is enabled or disabled.
Disable the button:
Button1.Enabled = False
AndroidMobileUserControl.Height
Height As Integer
The height of the control.
AndroidMobileUserControl.Left
Left As Integer
The left position of the control.
AndroidMobileUserControl.LockBottom
LockBottom As Boolean
Determines whether the bottom edge of the control should stay at a set distance from the bottom edge of the parent control, if there is one, or the owning layout.
This property can be set in the control's Inspector.
AndroidMobileUserControl.LockLeft
LockLeft As Boolean
Determines whether the left edge of the control should stay at a set distance from the left edge of the parent control, if there is one, or the owning layout.
LockLeft and LockTop default to True when you add a new control to a layout. Existing controls will be altered only if LockRight and/or LockBottom are not set. LockLeft has no effect unless LockRight is True.
This property can be set in the control's Inspector.
AndroidMobileUserControl.LockRight
LockRight As Boolean
Determines whether the right edge of the control should stay at a set distance from the right edge of the parent control, if there is one, or the owning layout.
This property can be set in the control's Inspector.
AndroidMobileUserControl.LockTop
LockTop As Boolean
Determines whether the top edge of the control should stay at a set distance from the top edge of the parent control, if there is one, or the owning layout.
LockTop and LockLeft default to True when you add a control to a layout. Existing controls will be altered only if LockRight and/or LockBottom are not set. LockTop has no effect unless LockBottom is True.
This property can be set in the control's Inspector.
AndroidMobileUserControl.Name
Name As String
The name of the control.
This property is read-only.
AndroidMobileUserControl.Parent
Parent As MobileUIControl
The parent (sometimes called a "Super") class of the control.
AndroidMobileUserControl.Top
Top As Integer
The top position of the control.
This property is read-only.
AndroidMobileUserControl.Visible
Visible As Boolean
Indicates whether the control is visible.
Make a button invisible:
Button1.Visible = False
AndroidMobileUserControl.Width
Width As Integer
The width of the control.
Method descriptions
AndroidMobileUserControl.ClearFocus
ClearFocus
Removes the focus from the control.
TextField1.ClearFocus
AndroidMobileUserControl.Handle
Handle As Ptr
The handle to the underlying native OS control.
AndroidMobileUserControl.Refresh
Refresh
Marks the control so that it will be redrawn during the next event loop.
Call Refresh to force a Canvas to redraw itself:
Canvas1.Refresh
AndroidMobileUserControl.SetFocus
SetFocus
Sets the focus to the control.
TextField1.SetFocus
Event descriptions
AndroidMobileUserControl.AppearanceChanged
AppearanceChanged(dark As Boolean)
Called when the device switches between Light and Dark mode.
Use this event to update any graphics or other UI as needed.
AndroidMobileUserControl.Closing
Closing
Called when the control's layout is closing.
AndroidMobileUserControl.CreateView
CreateView As Ptr
Raised when the control needs you to create your Android View. Return the pointer to the Android View.
Google's Android documentation provides more information on the Android View.
AndroidMobileUserControl.DrawControlInLayoutEditor
DrawControlInLayoutEditor(g As Graphics)
This event allows you to draw a preview of your control in the Layout Editor, similar to how the control will look like in at runtime. As this code will run as a script in the IDE, if it doesn't compile for any reason, you will see what happened in the Messages pane.
This event fires whenever your control needs to be drawn in the Layout Editor.
There is no need to re-open the project or restart the IDE, in order to see changes you make to the code in this event.
For more information of how this works, see Drawing Your Control.
AndroidMobileUserControl.Opening
Opening
Called when the control's layout is opening.
This is where you typically put initialization code.
This example in the Opening event of a Label sets its text to "Hello":
Me.Text = "Hello"
Drawing Your Control
As for Xojo 2026r1 AndroidMobileUserControl has the ability to draw itself in the Layout Editor using the same techniques that you use to draw a control in the Paint event of a Canvas control with one important difference: this event has access to the Properties and Constants of your class.
To draw a preview of your control in the Layout Editor, you must implement the DrawControlInLayoutEditor event. You may wish to implement it even if you're not using it to prevent this event from being available to the end users of your control. If the code you have placed in the event can't compile or runs into a runtime issue, an amber warning icon will be drawn on your control and the errors will be displayed to the Messages pane.
Important
Methods cannot be called in this event.
Here's an example of how you would draw a red oval within the bounds of the control:
g.DrawingColor = &cFF0000
g.DrawOval(0, 0, g.Width, g.Height)
In addition to the standard drawing controls, there are also some methods for accessing the properties and constants in your control.
Property Methods
BooleanProperty(Name as String) as Boolean
Gets the current value of a Boolean property of your control.
ColorProperty(name As String) As Color
Gets the current value of a Color property of your control.
DoubleProperty(name As String) As Double
Gets the current value of a Double property of your control.
IntegerProperty(name As String) As Integer
Gets the current value of an Integer property of your control.
PictureProperty(name As String) As Picture
Gets the current value of a Picture property of your control.
StringProperty(name As String) As String
Gets the current value of a String property of your control.
Constant Methods
ConstantValue(name As String) As String
Gets the value of a constant in your control as a String.
You can use the ConstantValue of a string stored in a constant, such as "kDescription".:
Var s As String = ConstantValue("kDescription") g.DrawText(s, 25, 25)
PictureConstant(name As String) As Picture
Gets the value of a constant in your control as a Picture.
You can use PictureConstant with the Base64 value (without the type header) of a picture stored in a constant, such as "kIcon":
Var icon As Picture = PictureConstant("kIcon") g.DrawPicture(icon, 0, 0)
Color Methods
ColorGroup.NamedColor(name As String) As Color
When running on a platform that supports named colors (only macOS at the time of this writing), this method returns the named OS.
Note
Color names are case sensitive, so the macOS secondary label color should be "secondaryLabelColor".
TextColor As Color
Returns the current text color of the platform that the IDE is running on.
FillColor As Color
Returns the current fill color of the platform that the IDE is running on.
IsDarkMode As Boolean
Returns True if the system is running in dark mode (only macOS at the time of this writing).
Font Methods
FontCount As Integer
Returns the number of fonts available on the system.
FontAt(index As Integer) As String
Returns the name of the font at the specified index.
Compatibility
Project Types |
Mobile |
Operating Systems |
Android |
See also
MobileUIControl parent class