如何以文本输入为中心的rad数据?

问题描述 投票:0回答:1

我想以rad数据形式居中对齐文本,因为我有这些要求。输入必须居中。

我已经尝试使用css来设置text-align属性。我在文档中查找了一种方法,但没有例子。

<RadDataForm #myLoginForm row="1" col="0" [source]="loginForm" [metadata]="loginFormMetadata">
        <!--Email property-->
        <TKEntityProperty
            tkDataFormProperty
            textAlignment="center"
            displayName=""
            name="email"
            hintText="Email"
            index="0">

            <TKPropertyEditor tkEntityPropertyEditor type="Email"></TKPropertyEditor>

            <!--Non empty, and email validators-->
            <TKNonEmptyValidator tkEntityPropertyValidators></TKNonEmptyValidator>
            <TKEmailValidator tkEntityPropertyValidators></TKEmailValidator>
        </TKEntityProperty>

输入始终从左向右开始,而不是光标不移动的居中输入,但文本在输入字符时向左移动。

更新 -

我使用了Manoj的建议,并且能够使用Native API获得居中的文本输入。我想出了如何使用以下链接在我的NS Angular项目中提供本机API:https://docs.nativescript.org/angular/core-concepts/accessing-native-apis-with-javascript#intellisense-and-access-to-the-native-apis-via-typescript

之后,我能够使用事件绑定将RadDataFrom绑定到该函数。

<RadDataForm #myLoginForm row="1" col="0" [source]="loginForm" [metadata]="loginFormMetadata" (editorUpdate)="dfEditorUpdate($event)">

谢谢Manoj!

angular nativescript
1个回答
1
投票

你必须原生地设计它,参考docs here

export function dfEditorUpdate(args: DataFormEventData) {
    const editor = args.editor;
    switch (args.propertyName) {
        case "albumName":
            if (isAndroid) {
                editor.getEditorView().setGravity(android.view.Gravity.CENTER_HORIZONTAL);
            } else {
                editor.editor.textAlignment = NSTextAlignment.Center
            }
            break;
    }
}

Playground Sample

© www.soinside.com 2019 - 2024. All rights reserved.