QAP实践:响应键盘显示、隐藏和其它高度变化事件

'use strict';

import {createElement, Component, render, findDOMNode} from 'rax';
import {Link, View, Text, Input, TextInput, ScrollView, Button, Transition} from 'nuke';
import QN from 'QAP-SDK';

class QAPKeyboardDemo extends Component {
    constructor(props) {
        super(props);

        this.state = {'viewBottom':'0'};

        QN.navigator.setTitle({
            query:{
                title: 'QAP键盘实践'
            }
        });

        QN.on('Global.KeyboardWillShow', (data) => {
            console.log('Global.KeyboardWillShow data : ', data);
            this.setState({viewBottom:data.height});

            // var orangeView = findDOMNode('orangeView');
            // console.log('orangeView : ', orangeView);
            // Transition(orangeView, {'transform':'translateY(-600)'}, {
            //     timingFunction: 'linear',
            //     delay: 0,
            //     duration: data.duration
            // }, function() {
            //     console.log('Transition done.');
            // });
        });

        QN.on('Global.KeyboardWillHide', (data) => {
            console.log('Global.KeyboardWillHide data : ', data);
            this.setState({viewBottom:data.height});
        });

        QN.on('Global.KeyboardWillChangeFrame', (data) => {
            console.log('Global.KeyboardWillChangeFrame data : ', data);
            this.setState({viewBottom:data.height});
        });
    }

    render() {
        return (
            <ScrollView style={styles.container} onScroll={this.hideKeyboard}>
                <TextInput
                    ref='TextInput1' onInput={this.onInput}
                    style={styles.textInput}
                    placeholder="请输入1"
                    multiple={true}
                    value={this.state.inputValue}>
                </TextInput>
                <View id='orangeView' style={{backgroundColor:'orange', height:'100rem', position:'fixed', bottom:this.state.viewBottom}}>跟随键盘移动</View>
            </ScrollView>
        );
    }
}

const styles = {
    container: {
        flex: 1,
        backgroundColor: '#ffffff',
    },

    textInput: {
        borderStyle: 'solid',
        borderColor: 'lightblue',
        borderWidth: '1rem',
        width: '600rem',
        height: '200rem',
        'margin':'40rem'
    },
}

render(<QAPKeyboardDemo/>)

export default QAPKeyboardDemo;

时间: 2024-10-01 02:39:06

QAP实践:响应键盘显示、隐藏和其它高度变化事件的相关文章

Android编程之软键盘的隐藏显示实例详解_Android

本文实例分析了Android编程之软键盘的隐藏显示方法.分享给大家供大家参考,具体如下: Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入. 那么,弹出软键盘后必然会造成原有布局高度的减少,那么系统应该如何来处理布局的减少?我们能否在应用程序中进行自定义的控制?这些是本文要讨论的重点. 一.软键盘显示的原理 软件盘的本质是什么?软键盘其实是一个Dialog! InputMethodService为我们的输入法创建了一个Dialog,并且将

控制软键盘显示和隐藏

 如何用Java代码控制Android软键盘的显示和隐藏呢? 过去我们在 EditText中显示隐藏Android输入法窗口 提到过,部分网友可能没有太注意.InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(myEdit.getWindowToken(), 0); //myEdit是你的EditText对象

Android软键盘的显示隐藏功能实现过程

一.软键盘显示的原理 软件盘的本质是什么?软键盘其实是一个Dialog! InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示.当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示. 二.活动主窗口调整 android定义了一个属性,名字为windowSoftInputMode, 用它可以让程序可以控制活动主

Android 检测键盘显示或隐藏键盘的实现代码

Android 检测键盘是否显示及隐藏键盘的方法~~ Android 中对于键盘的隐藏与显示的文章很多,今天公司项目需求不仅需要键盘隐藏和显示还需要对键盘的状态进行检查,这里做一个简单的实现实例,供大家参考: 实现代码: package com.newland.util; import android.app.Activity; import android.view.View; import android.view.inputmethod.InputMethodManager; /** *

360极速模式下可用的js实现按钮点击显示隐藏控件

问题描述 360极速模式下可用的js实现按钮点击显示隐藏控件 网上找了一些都只能在兼容模式或IE模式下实现 用360极速浏览器的极速模式无法实现 求一段可以在360浏览器里生效的代码 实现点击按钮隐藏一些控件(如div)并且显示另一些控件 解决方案 解决 chrome 浏览器对 div 的 display : none 不支持 试了很久,发现在style设置display:none的时候,IE是可以的,但是chrome不行 [html] view plaincopy在CODE上查看代码片派生到我

panel-C# Winfrom项目,如何实现Panel控件响应键盘事件

问题描述 C# Winfrom项目,如何实现Panel控件响应键盘事件 在C# Winfrom 项目中,有一个from窗体和一个Panel控件. 目前from窗体和Panel控件都是全屏显示.并且在Panel控件内用于加载显示外部应用程序. 目前遇到一个问题就是按下键盘的"Esc"键,无法响应键盘的事件. 无法实现按下键盘的"Esc"键后就立即退出整个程序. 请问怎么样解决下用户按下键盘的"Esc"键后无法响应键盘的事件? 解决方案 使用下面的代

android-机顶盒上面的软键盘怎么隐藏,在代码中是用的键盘隐藏方法在机顶盒上面没有反应

问题描述 机顶盒上面的软键盘怎么隐藏,在代码中是用的键盘隐藏方法在机顶盒上面没有反应 机顶盒上面的软键盘怎么隐藏,在代码中是用的键盘隐藏方法在机顶盒上面没有反应,可是在 手机上面显示就行,这是什么情况,还是我需要添加或者修改上面逻辑!求解,急用!!希望各路大神解答! 解决方案 是电视盒子还是机顶盒,机顶盒怎么会有软键盘 解决方案二: 是盒子的sdk吗? 有多种可能 1.修改android/frameworks/base/core/res/res/values/config.xml false 2

Android中实现EditText密码显示隐藏的方法

在Google发布了support:design:23+以后我们发现有这么一个东西TextInputLayout,先看下效果图: <android.support.design.widget.TextInputLayout android:id="@+id/pwdLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:passw

检测IE版本--&amp;amp;gt;比较IE版本--&amp;amp;gt;大于8不显示隐藏层则小于8显示隐藏层

问题描述 检测IE版本-->比较IE版本-->大于8不显示隐藏层则小于8显示隐藏层 检测IE版本-->比较IE版本-->大于8不显示隐藏层则小于8显示隐藏层 解决方案 用useragent去判断.