离子 Android 电视

Ionic Android TV

我正在 Ionic 上为 Android TV 做 APK,我对箭头的控制有问题。

设备的 APK 运行 但他的行为不正确。当使用箭头移动应用程序时,焦点不起作用。它会跳转一些 div。

这里是这个应用程序使用的一些代码:

TS:

matrixNodes: Array<any> = [];
matrixPosX: number = 0;
matrixPosY: number = 0;

。 . .

keyboardAction(e) {
    let activeEle: any = this.matrixNodes[this.matrixPosY][this.matrixPosX];
    let parent: any = activeEle.parentNode;
    let moveRight = -224;
    let moveLeft = +224;

    if (this.matrixPosY != 0) {
        moveRight = -340;
        moveLeft = +340;
    }

    if (e.key == "ArrowRight") {
        if (this.matrixPosX < (this.matrixNodes[this.matrixPosY].length - 1)) {
            this.matrixPosX++;
            this.matrixNodes[this.matrixPosY][this.matrixPosX].focus();


            //SCROLL
            if (parent.style.left == 0 + 'px' || parent.style.left == 0) {
                if(this.matrixPosY != 0){
                    console.log(this.matrixPosY)
                    parent.style.left = '-350px';
                }else
                    parent.style.left = '-240px';

            } else {
                let old = parent.style.left;
                old = old.replace("px", "");

                parent.style.left = (moveRight + parseInt(old)) + "px";
            }
            ////////////////
        }
    } else if (e.key == "ArrowLeft") {
        if (this.matrixPosX > 0) {
            this.matrixPosX--;
            this.matrixNodes[this.matrixPosY][this.matrixPosX].focus();


            //SCROLL
            if (parent.style.left == 0 + 'px' || parent.style.left == 0) {
                if(this.matrixPosY != 0)
                    parent.style.left = '350px';
                else
                    parent.style.left = '238px';
            } else {
                let old = parent.style.left;
                old = old.replace("px", "");
                parent.style.left = (moveLeft + parseInt(old)) + "px";
            }
            /////////////////////////////
        } else {
            //Moverse al TAB
            let tab = document.getElementById("tab-button-home");
            tab.focus();
        }

此函数 (keyboardAction) 是通过事件 keydown 调用的。

我想知道为什么跳一些 div.. 如果是因为在 HTML

处使用了其他事件或其他元素

当 1 行代码就是解决方案时...

e.preventDefault()