Nativescript 6.0如何在Android中获取FocusbarListener for Searchbar

时间:2019-10-14 05:29:25

标签: nativescript nativescript-angular

我用Nativescript angular实现项目。在nativescript 5.0中,我使用以下代码获取焦点更改侦听器。在更新6.0之后,我在android中遇到了这个问题。

原因:只要有人帮助您修复6.0中的问题,搜索栏就会扩展androidx小部件。

<SearchBar id="searchBarMall"
        [hint]="searchMall" (loaded)="searchBarloaded($event)"
        (textChange)="onTextChanged($event)" (clear)="onClear($event)"
        (submit)="onSubmit($event)"
        textFieldHintColor="gray"></SearchBar>

打字稿

import { SearchBar } from "tns-core-modules/ui/search-bar";
import { Component, OnInit } from "@angular/core";
import { Page, isAndroid } from "tns-core-modules/ui/page";

@Component({
    selector: "Home",
    moduleId: module.id,
    templateUrl: "./home.component.html",
    styleUrls: ["./home.component.css"]
})
export class HomeComponent implements OnInit {
    searchPhrase: string;
    private searchbar: any;
    onSearchSubmit(args): void {
        let searchBar = <SearchBar>args.object;
        console.log("You are searching for " + searchBar.text);
    }


    constructor(private _page: Page) {
    }

    ngOnInit(): void {
    }

    searchBarloaded(args) {
        if (isAndroid) {
            let self = this;
            let searchBar = <SearchBar>args.object;
            searchBar.android.setOnQueryTextFocusChangeListener(new android.view.View.OnFocusChangeListener({
                onFocusChange: function (v: any, hasFocus: boolean) {
                    console.log("Focus" + hasFocus);
                }
            }));
            this.searchbar.android.setFocusable(false);
            this.searchbar.android.clearFocus();
        }
    }

    ngAfterViewInit() {
        this.searchbar = <SearchBar>this._page.getViewById("searchBarMall");
    }
}

1 个答案:

答案 0 :(得分:0)

在nativeView上使用setOnQueryTextFocusChangeListener

$fileName