mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-18 05:18:39 +08:00
fix android keyboard
This commit is contained in:
@ -71,10 +71,9 @@ function initializeEditTextListeners(): void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (hasFocus) {
|
if (hasFocus) {
|
||||||
|
owner.clearDismissTimer();
|
||||||
owner.notify({ eventName: EditableTextBase.focusEvent, object: owner });
|
owner.notify({ eventName: EditableTextBase.focusEvent, object: owner });
|
||||||
owner.focus();
|
} else {
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (owner._dirtyTextAccumulator || owner._dirtyTextAccumulator === "") {
|
if (owner._dirtyTextAccumulator || owner._dirtyTextAccumulator === "") {
|
||||||
textProperty.nativeValueChange(owner, owner._dirtyTextAccumulator);
|
textProperty.nativeValueChange(owner, owner._dirtyTextAccumulator);
|
||||||
owner._dirtyTextAccumulator = undefined;
|
owner._dirtyTextAccumulator = undefined;
|
||||||
@ -130,6 +129,7 @@ export abstract class EditableTextBase extends EditableTextBaseCommon {
|
|||||||
private _inputType: number;
|
private _inputType: number;
|
||||||
|
|
||||||
public _changeFromCode: boolean;
|
public _changeFromCode: boolean;
|
||||||
|
public _dismissId: NodeJS.Timer;
|
||||||
|
|
||||||
public abstract _configureEditText(editText: android.widget.EditText): void;
|
public abstract _configureEditText(editText: android.widget.EditText): void;
|
||||||
|
|
||||||
@ -175,7 +175,9 @@ export abstract class EditableTextBase extends EditableTextBaseCommon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const activity = this._context as android.app.Activity;
|
const activity = this._context as android.app.Activity;
|
||||||
setTimeout(() => {
|
if (!this._dismissId) {
|
||||||
|
this._dismissId = setTimeout(() => {
|
||||||
|
this._dismissId = null;
|
||||||
const focused = activity.getCurrentFocus();
|
const focused = activity.getCurrentFocus();
|
||||||
if (!focused
|
if (!focused
|
||||||
|| focused === nativeView
|
|| focused === nativeView
|
||||||
@ -184,8 +186,17 @@ export abstract class EditableTextBase extends EditableTextBaseCommon {
|
|||||||
}
|
}
|
||||||
}, 100);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public clearDismissTimer(): void {
|
||||||
|
if (this._dismissId) {
|
||||||
|
clearTimeout(this._dismissId);
|
||||||
|
this._dismissId = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public focus(): boolean {
|
public focus(): boolean {
|
||||||
|
this.clearDismissTimer();
|
||||||
const result = super.focus();
|
const result = super.focus();
|
||||||
if (result) {
|
if (result) {
|
||||||
ad.showSoftInput(this.nativeViewProtected);
|
ad.showSoftInput(this.nativeViewProtected);
|
||||||
|
Reference in New Issue
Block a user