mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 19:26:42 +08:00
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { Label as LabelDefinition } from ".";
|
|
import { TextBase, WhiteSpace, whiteSpaceProperty, booleanConverter, CSSType } from "../text-base";
|
|
import { profile } from "../../profiling";
|
|
|
|
export * from "../text-base";
|
|
|
|
let TextView: typeof android.widget.TextView;
|
|
|
|
@CSSType("Label")
|
|
export class Label extends TextBase implements LabelDefinition {
|
|
nativeViewProtected: android.widget.TextView;
|
|
nativeTextViewProtected: android.widget.TextView;
|
|
|
|
get textWrap(): boolean {
|
|
return this.style.whiteSpace === "normal";
|
|
}
|
|
set textWrap(value: boolean) {
|
|
if (typeof value === "string") {
|
|
value = booleanConverter(value);
|
|
}
|
|
|
|
this.style.whiteSpace = value ? "normal" : "nowrap";
|
|
}
|
|
|
|
@profile
|
|
public createNativeView() {
|
|
if (!TextView) {
|
|
TextView = android.widget.TextView;
|
|
}
|
|
|
|
return new TextView(this._context);
|
|
}
|
|
|
|
public initNativeView(): void {
|
|
super.initNativeView();
|
|
const textView = this.nativeTextViewProtected;
|
|
textView.setSingleLine(true);
|
|
textView.setEllipsize(android.text.TextUtils.TruncateAt.END);
|
|
}
|
|
|
|
[whiteSpaceProperty.setNative](value: WhiteSpace) {
|
|
// Label initial value is no-wrap. set in initNativeView
|
|
const newValue = value === "initial" ? "nowrap" : value;
|
|
super[whiteSpaceProperty.setNative](newValue);
|
|
}
|
|
}
|
|
|
|
Label.prototype._isSingleLine = true;
|
|
Label.prototype.recycleNativeView = "auto";
|