fix(label-android): numeric text ignores text-transform (#7123)

This commit is contained in:
Manol Donev
2019-04-10 10:46:38 +03:00
committed by GitHub
parent 5c165f527c
commit 82f7e24b80
4 changed files with 39 additions and 2 deletions

View File

@ -0,0 +1,18 @@
import { NavigatedData } from "tns-core-modules/ui/page";
import { Page } from "tns-core-modules/ui/page";
import { Observable } from "tns-core-modules/data/observable";
export class HomeViewModel extends Observable {
public stringValue = "test";
public stringNumericValue = "12345";
public numericValue = 12345;
constructor() {
super();
}
}
export function onNavigatingTo(args: NavigatedData) {
const page = <Page>args.object;
page.bindingContext = new HomeViewModel();
}

View File

@ -0,0 +1,16 @@
<Page xmlns="http://schemas.nativescript.org/tns.xsd" id="main-page" navigatingTo="onNavigatingTo">
<StackLayout>
<Label text="string value:" />
<Label text="{{ stringValue }}" />
<Label text="string value with uppercase:" />
<Label textTransform="uppercase" text="{{ stringValue }}" />
<Label text="string numeric value:" />
<Label text="{{ stringNumericValue }}" />
<Label text="string numeric value with uppercase:" />
<Label textTransform="uppercase" text="{{ stringNumericValue }}" />
<Label text="numeric value:" />
<Label text="{{ numericValue }}" />
<Label text="numeric value with uppercase:" />
<Label textTransform="uppercase" text="{{ numericValue }}" />
</StackLayout>
</Page>

View File

@ -26,6 +26,7 @@ export function loadExamples() {
examples.set("tabview-with-scrollview_4022", "issues/tabview-with-scrollview_4022");
examples.set("3354-ios", "issues/issue-3354");
examples.set("4450", "issues/issue-4450");
examples.set("5125", "issues/issue-5125");
examples.set("5274", "issues/issue-5274");
examples.set("ng-repo-1599", "issues/issue-ng-repo-1599");
examples.set("ng-repo-1626", "issues/issue-ng-repo-1626");

View File

@ -36,7 +36,9 @@ function initializeTextTransformation(): void {
return createSpannableStringBuilder(formattedText);
}
else {
return getTransformedText(this.textBase.text, this.textBase.textTransform);
const text = this.textBase.text;
const stringValue = (text === null || text === undefined) ? "" : text.toString();
return getTransformedText(stringValue, this.textBase.textTransform);
}
}
@ -133,7 +135,7 @@ export class TextBase extends TextBaseCommon {
if (spannableStringBuilder && nativeView instanceof android.widget.Button &&
!(nativeView.getTransformationMethod() instanceof TextTransformation)) {
// Replace Android Button's default transformation (in case the developer has not already specified a text-transform) method
// Replace Android Button's default transformation (in case the developer has not already specified a text-transform) method
// with our transformation method which can handle formatted text.
// Otherwise, the default tranformation method of the Android Button will overwrite and ignore our spannableStringBuilder.
nativeView.setTransformationMethod(new TextTransformation(this));