ネイティブ モバイル アプリケーション用ユーザーコントロールの定義は、
ユーザーコントロールの定義と似ていますが、いくつか追加のプロパティがあります。User Control Editor は、
ユーザーコントロールにのみ有効であることに注意してください。
独自のネイティブ モバイル アプリケーション用ユーザーコントロールを作成するには、既存のものをコピー アンド ペーストして、次のタグを修正します。
- ユーザーコントロールの Name および Description を変更します。
- [ Version ] タグを初期値に設定します。
- ユーザー コントロール プロパティを xml ファイルに設定し、PropertiesDefinition タグで参照します。
<PropertiesDefinition>UserControlNameProperties.xml</PropertiesDefinition>
- [ Platform ] を SmartDevices に設定します。
<Platforms>
<Platform>SmartDevices</Platform>
</Platforms>
- コントロールがリストの場合、必ず ControlType タグに List 値を設定します。
<ControlType>List</ControlType>
次に、プラットフォームに特有の値を入力する必要があります。
- ユーザーコントロールをライブラリとしてパッケージ化し、必要に応じて、 [ iOS_SupportFiles ] プロパティを使用してバンドル (リソース) を参照します。
<iOS_SupportFiles>
<File>libmyUC.a</File>
<Directory>myUC.bundle</Directory>
</iOS_SupportFiles>
- iOS_ClassName タグを使用して、ネイティブ モバイルの実装のユーザーコントロールを担当するクラスを宣言します。
<iOS_ClassName>SampleUCMainClass</iOS_ClassName>
- Android_ClassName タグを使用して、ネイティブモバイル実装のユーザーコントロールを担当するクラスを宣言します。
<Android_ClassName>com.mycompany.extendedcontrols.sampleuc.mainclass</Android_ClassName>
GeneXus 15 Upgrade 4 以降、定義 (*.control file) にタグを追加することで、ユーザーコントロールと関連のある dip に pd (platform default) 値を指定することが可能になりました。
iOS の場合
- iOS_PlatformDefault タグを使って dip に値を宣言します。
<iOS_PlatformDefault>80</iOS_PlatformDefault>
Android の場合
- Android_PlatformDefault タグを使って dip に値を宣言します。
<Android_PlatformDefault>80</Android_PlatformDefault>
両方の場合
- PlatformDefault タグを使って dip に値を宣言します。
<PlatformDefault>80</PlatformDefault>
注
GeneXus 16 Upgrade 2 以降では、リストタイプのユーザーコントロールを定義する際に、 [ Row ] プロパティを非表示にしたり、固定値を指定したりできます。たとえば、GeneXus のインストールディレクトリー (GeneXus インストールディレクトリーの UserControls \ SmartDevicesMapControl \ sdmapcontrol.control) 内に、ユーザーコントロールの SDMaps があります:
<Overrides>
<Property>
<Id>rows</Id>
<Visible>false</Visible>
<Value><unlimited></Value><!-- ページングはサポートされていないため、unlimited にする必要があります -->
....
</Overrides>
この例では、 [ Row ] プロパティを非表示にして、値に unlimited が設定されていることに注目してください。
/install オプションで GeneXus を実行して、利用できることを確認します。