【uniapp】关于小程序输入框聚焦、失焦(输入法占位)的问题

聊天小程序,界面带有输入框,当输入框中聚焦后,底部自动谈起输入法。此时输入框也要随之出现在输入法上方。默认情况下,输入框此时会被输入法覆盖掉。

以下是亲自实践,解决这个问题的方法:

一、小程序大概布局

复制代码
<template>
	<view style="height: 100%; display: flex; flex-direction: column;">
		
		<!-- 自定义导航栏 -->
		<head-nav :navRedirectPage="navRedirectPage"></head-nav>
		
		<!-- 小程序界面内容 -->
		<view class="container" :style="containerStyle">
			<!-- 聊天界面内容 -->
			<scroll-view ref='list' :scroll-top="scrollTop" class="chat-container" :scroll-y="true"></scroll-view>
			
			<!-- 底部输入框 -->
			<view class="bottom-bar"  :style="bottom_autosize_style">
				<view class="input-view">
						<uv-textarea selectable="true" :cursor-spacing="20" v-model="inputText" :inputBorder="false" customStyle="overflow: scroll;max-height: 75px;border-width: 0px !important;background-color: #F7F7FC;margin-left: 12px;padding: 7px;"
			:adjust-position="false" :show-confirm-bar='false' @blur="inputBindBlur" :maxlength="500" autoHeight placeholder="请输入内容" @focus="inputBindFocus"></uv-textarea>					
					<button class="send-button" @click="sendMessage"
						:disabled="!inputText.trim().length>0 || sendDisabled">
						<image class="send-message" src="/static/v2/aichat/fasong.png" />
					</button>
				</view>
			</view>
		</view>
	</view>
</template>

css样式表:

  • 默认样式为:

    复制代码
      // 聊天窗口
      .chat-container {
      	flex-grow: 1; // 窗口大小为可变
      	overflow-y: auto;
      }
    
      // 底部输入框
      .bottom-bar {
      		position: relative;
      		display: flex;
      		align-items: center;
      		padding: 6px 13px 6px 13px;  // 主要是padding-bottom变化
      }
  • 当焦点在输入框内时,需要调整内容:

    // 聚焦方法
    inputBindFocus(e){
    console.log('e.detail.height:', e.detail.height)
    if (e.detail.height) {
    this.bottom_autosize_style = "padding-bottom:" + (e.detail.height + 6ssss) + "px;"
    if (!this.showScrollToBottom) {
    this.scrollToBottom();
    }
    }
    },
    // 失焦方法
    inputBindBlur(){
    // this.containerStyle = ' height:' + this.containerHeight + 'px;';
    this.bottom_autosize_style = ""
    if (!this.showScrollToBottom) {
    this.scrollToBottom();
    }
    }

请注意 bottom_autosize_style 这个变量的变化,即可实现。

相关推荐
show4334 小时前
2026视频处理小程序技术选型指南:链接解析+OCR+ASR+AI配音多引擎对比
小程序·ocr·音视频
凡科网小帆13 小时前
2026小程序商城平台哪家强,小程序商城平台选型怎么做
大数据·小程序·小程序商城平台
游戏开发爱好者818 小时前
App Store 上传 IPA 自动化,.p8 密钥认证与 CI/CD 接入实战
android·运维·ci/cd·小程序·uni-app·自动化·iphone
游戏开发爱好者819 小时前
iOS 推送怎么配置,APNs 推送证书、设备库与群发
android·ios·小程序·https·uni-app·iphone·webview
snow@li19 小时前
小程序:200知识点/速查手册
小程序
AI_AGENT_DEV_AI1 天前
原生 APP 开发的开发优点
uni-app
不吃辣4901 天前
vibe coding | 如何做一个AI制图小程序?
人工智能·小程序·ai编程
laboratory agent开发1 天前
2026小程序服务商推荐:全域私域数字化工具选型深度解析
小程序
小码哥0682 天前
智慧物业管理系统开发详解:核心功能与源码开发优势
小程序·物业管理·物业系统
汤姆yu2 天前
基于微信小程序的方言转文字小程序的设计与实现
java·小程序·毕业设计·方言翻译