收藏
回答

软键盘如何手动收起

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug text-area 客户端 iOS 6.6.3 1.9.97

我在写一个评论框text-area,由于页面设计,该评论框定位使用绝对定位,如下所示

<view class='container'>

    <view></view>

    ...

    <view class='text-area-wrapper' >

        <text-area></text-area>

    </view>

</view>


.text-area-wrapper { position: absolute; ...}


我在隐藏 text-area-wrapper 这个容器的时候,如果软键盘此时拉起会导致页面 container 样式错乱,我测试后解决方式是,隐藏 text-area-wrapper 之前需手动将软键盘收起,再做隐藏操作。但我查阅了官方文档和百度后,都没有发现有如何手动收起软键盘的方案。请问我该如何实现这个功能。

ps:我发现腾讯视频的评论也是类似我这种效果,不过腾讯视频能实现 先隐藏软键盘,再隐藏界面。

回答关注问题邀请回答
收藏

6 个回答

  • 韦鹏
    韦鹏
    2018-04-28

    今天下午尝试了下,目前的措施只能先让 text-area 失去焦点,再隐藏 wrapper 这个容器,需要采取延时操作。具体代码如下:

    html

    <view class="wrapper {{ showWrapper ? '' : 'hide' }}">

            <text-area focus="{{ textAreaFocus }}"></text-area>

    </view>


    css

    .hide  { display: none; }


    js

    data: {

        showWrapper: true,

        textAreaFocus: true

    },

    ...

    methods: {

        hideWrapper () {

             // 必须采取延时操作,如果采取一起改变状态的操作,页面样式还是会混乱

            this.setData({

                textAreaFocus: false 

            });

            setTimeout(()=> {

                this.setData({ showWrapper: false });

            }, 500);       

        }

    }




    2018-04-28
    有用
    回复
  • You can you up
    You can you up
    2018-04-28

    别轻易用  鬼知道有啥bug

    2018-04-28
    有用
    回复
  • 卢霄霄
    卢霄霄
    2018-04-28

    还真是哎!官网都找不到API了

    2018-04-28
    有用
    回复
  • You can you up
    You can you up
    2018-04-28

    wx.hideKeyboard()废弃了

    2018-04-28
    有用
    回复
  • 卢霄霄
    卢霄霄
    2018-04-28

    你是在找 wx.hideKeyboard() 吗

    2018-04-28
    有用
    回复
  • You can you up
    You can you up
    2018-04-28
    focusBooleanfalse获取焦点

    失去焦点他就会收起来,你试试可以不

    2018-04-28
    有用
    回复
登录 后发表内容