mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 03:31:45 +08:00
fix(label-android): numeric text ignores text-transform (#7123)
This commit is contained in:
18
apps/app/ui-tests-app/issues/issue-5125.ts
Normal file
18
apps/app/ui-tests-app/issues/issue-5125.ts
Normal 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();
|
||||
}
|
16
apps/app/ui-tests-app/issues/issue-5125.xml
Normal file
16
apps/app/ui-tests-app/issues/issue-5125.xml
Normal 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>
|
@ -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");
|
||||
|
@ -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));
|
||||
|
Reference in New Issue
Block a user