18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

軟鍵盤常見(jiàn)問(wèn)題的解決方法

HarmonyOS開發(fā)者 ? 來(lái)源:HarmonyOS開發(fā)者 ? 2025-09-04 09:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

軟鍵盤是用戶進(jìn)行交互的重要途徑之一,同時(shí)軟鍵盤的彈出和收起,可能會(huì)影響到正在顯示的UI元素,影響用戶體驗(yàn),出現(xiàn)如下常見(jiàn)的軟鍵盤布局適配問(wèn)題:

重要信息被軟鍵盤遮擋:當(dāng)軟鍵盤彈出時(shí),輸入框或其它重要UI元素可能會(huì)被鍵盤遮擋,導(dǎo)致用戶無(wú)法看到或訪問(wèn)它們。

軟鍵盤彈出導(dǎo)致布局錯(cuò)位:內(nèi)容可能會(huì)不恰當(dāng)上移,影響用戶體驗(yàn)。

軟鍵盤彈出導(dǎo)致彈窗過(guò)度上抬:彈窗被鍵盤上頂,造成不好的體驗(yàn)。

針對(duì)以上問(wèn)題,本文將幫助開發(fā)者了解軟鍵盤的彈出和收起的控制、避讓機(jī)制以及軟鍵盤常見(jiàn)問(wèn)題的解決方法。

1、軟鍵盤的彈出收起和監(jiān)聽

用戶點(diǎn)擊輸入框時(shí),軟鍵盤默認(rèn)彈出。但在特定場(chǎng)景下,需要對(duì)軟鍵盤的彈出和收起進(jìn)行控制,如點(diǎn)擊空白區(qū)域收起軟鍵盤,進(jìn)入頁(yè)面時(shí)輸入框主動(dòng)獲焦。開發(fā)者還需根據(jù)軟鍵盤狀態(tài)和高度調(diào)整頁(yè)面布局。

主動(dòng)獲焦彈出軟鍵盤

有時(shí)候進(jìn)入頁(yè)面,希望頁(yè)面中的輸入框能主動(dòng)獲焦并且彈出軟鍵盤,方便用戶直接輸入,比如,點(diǎn)擊應(yīng)用首頁(yè)的搜索框。這可以通過(guò)將輸入框的defaultFocus設(shè)置為true來(lái)實(shí)現(xiàn)。

TextInput()
 .defaultFocus(true)

代碼控制彈出軟鍵盤

開發(fā)者可以使用FocusController的requestFocus()方法,通過(guò)組件的id將焦點(diǎn)轉(zhuǎn)移到組件樹對(duì)應(yīng)的實(shí)體節(jié)點(diǎn),并且彈出軟鍵盤。例如,表情面板切換到文本輸入時(shí),點(diǎn)擊表情圖標(biāo)拉起系統(tǒng)軟鍵盤,便于用戶直接輸入。

TextInput({placeholder:'Please enter a contact name'})
 .id('input1')
Button('login')
 .onClick(() =>{
 this.getUIContext().getFocusController().requestFocus('input1');
 })

代碼控制收起軟鍵盤

通過(guò)全局的焦點(diǎn)控制對(duì)象FocusController的clearFocus方法,軟鍵盤收起,例如在下面的搜索頁(yè)面中,點(diǎn)擊搜索按鈕時(shí)軟鍵盤收起。

Button('Search')
 .onClick(() =>{
 this.getUIContext().getFocusController().clearFocus();
 })

此外,開發(fā)者可調(diào)用stopEditing()方法來(lái)關(guān)閉鍵盤,該方法需為輸入框單獨(dú)綁定一個(gè)TextInputController對(duì)象。在存在多個(gè)輸入框的場(chǎng)景下,需要綁定多個(gè)TextInputController對(duì)象,使用起來(lái)較為繁瑣,推薦改用clearFocus()方法來(lái)解除焦點(diǎn)。

@Component
structStopEditingCpt{
privatecontroller:TextInputController=newTextInputController();
build() {
 Column() {
  TextInput({placeholder:'Input',controller:this.controller})
  Button('Search')
    .onClick(() =>{
    this.controller.stopEditing();
    })
  }
 }
}

監(jiān)聽獲取軟鍵盤高度、鍵盤彈出和收起

開發(fā)者可以通過(guò)獲取軟鍵盤高度、監(jiān)聽軟鍵盤的彈出和收起狀態(tài),調(diào)整組件位置以適配界面或顯示隱藏某些組件。通過(guò)window模塊的on('keyboardHeightChange')方法開啟固定態(tài)軟鍵盤高度變化的監(jiān)聽,實(shí)時(shí)獲取軟鍵盤寬高。

aboutToAppear():void{
 window.getLastWindow(this.getUIContext().getHostContext()).then(currentWindow=>{
   currentWindow.on('keyboardHeightChange',(data:number) =>{
   this.keyboardHeight=this.getUIContext().px2vp(data);
   })
  })
 }

監(jiān)聽獲取安全區(qū)域高度

window.getLastWindow(this.getUIContext().getHostContext()).then(curWindow => {
   curWindow.on('avoidAreaChange',data=> {
   if(data.area.bottomRect.height <=?0) {
? ? ? ? ??this.isKeyBoardHidden =?true;
? ? ? ? }?else?{
? ? ? ? ??this.isKeyBoardHidden =?false;
? ? ? ? }
? ? ? })
? ? })}

2、軟鍵盤避讓機(jī)制

默認(rèn)避讓效果

解決軟鍵盤的界面適配問(wèn)題,首先需要了解在HarmonyOS系統(tǒng)中軟鍵盤的避讓機(jī)制是怎么樣的。

如果當(dāng)前輸入框不會(huì)被軟鍵盤遮擋,則不上抬組件,如圖所示點(diǎn)擊輸入框1,組件不會(huì)上抬。

當(dāng)前輸入框會(huì)被軟鍵盤遮擋,則上抬組件至剛好在軟鍵盤上方顯示完整的輸入框,輸入框上方的組件會(huì)跟著抬起,下方的組件不會(huì)露出,如下方的輸入框12。

彈窗內(nèi)輸入框避讓規(guī)則

彈窗避讓可以通過(guò)BaseDialogOptions,設(shè)置彈窗的避讓模式KeyboradAvoidMode,當(dāng)設(shè)置為默認(rèn)避讓Default模式時(shí),如果軟鍵盤彈出會(huì)覆蓋輸入框,彈窗整體會(huì)上抬,并且為了UX美觀,會(huì)存在默認(rèn)的間隔,默認(rèn)大小為16vp。

鍵盤避讓模式

當(dāng)用戶在輸入時(shí),為了確保輸入框不會(huì)被鍵盤遮擋,系統(tǒng)提供了避讓模式來(lái)解決這一問(wèn)題。開發(fā)者可以通過(guò)setKeyboardAvoidMode控制虛擬鍵盤抬起時(shí)頁(yè)面的避讓模式,鍵盤抬起時(shí)默認(rèn)頁(yè)面避讓模式為上抬模式,下面列舉了幾種常見(jiàn)的避讓模式。

1、上抬模式(KeyboardAvoidMode.OFFSET):為了避讓軟鍵盤,Page內(nèi)容會(huì)整體上抬。如下示例代碼,軟鍵盤彈出時(shí),頁(yè)面整體上抬: 2、壓縮模式(KeyboardAvoidMode.RESIZE):當(dāng)軟鍵盤高度改變時(shí),調(diào)整Page大小。Page下設(shè)置百分比寬高的組件會(huì)跟隨壓縮,直接設(shè)置寬高的組件保持固定大小。注意,設(shè)置KeyboardAvoidMode.RESIZE時(shí),安全區(qū)設(shè)置expandSafeArea 無(wú)效。 3、不避讓模式(KeyboardAvoidMode.NONE):軟鍵盤將直接覆蓋頁(yè)面UI,不會(huì)觸發(fā)界面布局調(diào)整。例如在全屏沉浸式場(chǎng)景(游戲/視頻播放器等),為保障用戶體驗(yàn)的完整性,開發(fā)者可以使用KeyboardAvoidMode.NONE模式。 圖:壓縮模式,底部工具欄抬起

3、軟鍵盤避讓常見(jiàn)問(wèn)題

重要信息被軟鍵盤遮擋

例如下面這個(gè)電子郵件示例,內(nèi)容包括標(biāo)題欄、內(nèi)容區(qū)域和底部操作欄。點(diǎn)擊輸入內(nèi)容的輸入框時(shí),軟鍵盤會(huì)遮擋底部操作欄,影響用戶體驗(yàn)。這種情況只要設(shè)置避讓模式為壓縮模式即可。

aboutToAppear():void{
this.getUIContext().setKeyboardAvoidMode(KeyboardAvoidMode.RESIZE);
}

需要注意的是內(nèi)容區(qū)域高度的設(shè)置需要用百分比的方式實(shí)現(xiàn)

軟鍵盤彈出導(dǎo)致布局錯(cuò)位

例如下面這樣的一個(gè)聊天界面,頂部是一個(gè)自定義的標(biāo)題,下方為可滾動(dòng)聊天消息區(qū)域,底部是消息輸入框。

想要頂部標(biāo)題不被軟鍵盤向上抬,需要給標(biāo)題組件設(shè)置

.expandSafeArea([SafeAreaType.KEYBOARD])屬性,使標(biāo)題組件不避讓鍵盤。

軟鍵盤彈出導(dǎo)致彈窗過(guò)度上抬

當(dāng)用戶點(diǎn)擊彈窗底部的輸入框的時(shí)候,彈窗會(huì)整體上抬,輸入框上抬的距離也過(guò)多。

為了解決以上問(wèn)題,可以使用Navigation.Dialog,通過(guò)設(shè)置NavDestination的mode為NavDestinationMode.DIALOG彈窗類型,此時(shí)整個(gè)NavDestination默認(rèn)透明顯示。同時(shí),設(shè)置鍵盤避讓模式為壓縮模式KeyboardAvoidMode.RESIZE。

設(shè)置軟鍵盤和彈窗組件距離

彈窗類組件默認(rèn)額避讓模式下,軟鍵盤彈起之后彈窗組件之間16vp間隔,開發(fā)者可以通過(guò)彈窗參數(shù)BaseDialogOptions中keyboardAvoidDistance,調(diào)整系統(tǒng)設(shè)置的避讓間距彈窗組件和軟鍵盤之間的距離。設(shè)置軟鍵盤間距時(shí),需要將keyboardAvoidMode值設(shè)為KeyboardAvoidMode.DEFAULT。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)者
    +關(guān)注

    關(guān)注

    1

    文章

    688

    瀏覽量

    17869
  • 軟鍵盤
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    6519

原文標(biāo)題:軟鍵盤布局適配指南

文章出處:【微信號(hào):HarmonyOS_Dev,微信公眾號(hào):HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Labview寫軟鍵盤程序

    查了很多資料,都是在Vi里進(jìn)行輸入。這個(gè)我已經(jīng)用API完成了。但我需要的是Labview寫的軟鍵盤能用在頁(yè)網(wǎng)上或者其它第三方軟件中使用。請(qǐng)幫忙給源碼看看,謝謝
    發(fā)表于 05-02 20:53

    求教這個(gè)軟鍵盤的具體用法

    這個(gè)軟鍵盤的具體用法,謝謝。
    發(fā)表于 09-30 21:28

    英創(chuàng)WINCE工控主板軟鍵盤使用注意事項(xiàng)

      WinCE工控主板當(dāng)窗口焦點(diǎn)位于輸入框時(shí)會(huì)自動(dòng)彈出軟鍵盤。使用SipShowIM函數(shù)可以控制軟鍵盤的顯示與關(guān)閉,SipSetCurrentIM函數(shù)可以切換軟鍵盤類型?! ×硗猓珽M335x工控
    發(fā)表于 06-23 15:11

    Android軟鍵盤蓋住輸入框的解決方法

    當(dāng)在Android的layout設(shè)計(jì)里面如果輸入框過(guò)多,則在輸入彈出軟鍵盤的時(shí)候,下面的輸入框會(huì)有一部分被軟件盤擋住,從而不能獲取焦點(diǎn)輸入。
    發(fā)表于 07-15 06:41

    軟鍵盤

    數(shù)字軟鍵盤輸入,按鍵禁用版本,和輸出數(shù)值設(shè)定范圍多版本
    發(fā)表于 07-13 18:55

    如何打開軟鍵盤 電腦的軟鍵盤怎么打開

    圖標(biāo),點(diǎn)擊圖標(biāo),就可出現(xiàn)軟鍵盤了。方法三:win8系統(tǒng)還可以鼠標(biāo)右鍵點(diǎn)擊任務(wù)欄空白處,單擊【工具欄】中的【觸摸鍵盤】。方法四:搜狗拼音輸入法中也自帶
    發(fā)表于 07-16 10:49

    請(qǐng)問(wèn)如何在開發(fā)板中打開軟鍵盤?

    我的程序已經(jīng)將頁(yè)面的頭部完全隱藏了,所以不會(huì)顯示軟鍵盤的小圖標(biāo),就不能手動(dòng)打開軟鍵盤。請(qǐng)問(wèn):我的程序中,當(dāng)光標(biāo)進(jìn)入文本框時(shí),如何自動(dòng)打開軟鍵盤
    發(fā)表于 01-11 07:26

    HarmonyOS中軟鍵盤的獲取和關(guān)閉應(yīng)該用那個(gè)類?

    HarmonyOS中軟鍵盤的獲取和關(guān)閉應(yīng)該用那個(gè)類??次臋n里只與js的的softkeyboardenabled6軟鍵盤。
    發(fā)表于 05-11 10:13

    MiniGUI的軟鍵盤快速設(shè)計(jì)方法

    提出一種MiniGUI的軟鍵盤快速設(shè)計(jì)方法,利用MiniGUI的酷工具欄控件創(chuàng)建軟鍵盤面板,通過(guò)點(diǎn)擊軟鍵盤面板上的按鈕向MiniGUI內(nèi)部的輸入法窗口發(fā)送相應(yīng)按鍵消息,實(shí)現(xiàn)了包含中文字
    發(fā)表于 04-09 08:49 ?71次下載

    軟鍵盤產(chǎn)品界面顯示的通用程序設(shè)計(jì)

    介紹如何利用狀態(tài)圖的分析結(jié)果把握待開發(fā)系統(tǒng)的軟界面結(jié)構(gòu),完成軟鍵盤控制類產(chǎn)品界面顯示的通用程序設(shè)計(jì)。
    發(fā)表于 04-16 09:24 ?24次下載

    軟鍵盤產(chǎn)品界面顯示的通用程序設(shè)計(jì)

    介紹如何利用狀態(tài)圖的分析結(jié)果把握待開發(fā)系統(tǒng)的軟界面結(jié)構(gòu),完成軟鍵盤控制類產(chǎn)品界面顯示的通用程序設(shè)計(jì)。
    發(fā)表于 05-15 14:44 ?7次下載

    嵌入式Linux系統(tǒng)的軟鍵盤實(shí)現(xiàn)

    嵌入式Linux系統(tǒng)的軟鍵盤實(shí)現(xiàn)
    發(fā)表于 10-31 09:33 ?6次下載
    嵌入式Linux系統(tǒng)的<b class='flag-5'>軟鍵盤</b>實(shí)現(xiàn)

    英創(chuàng)信息技術(shù)WINCE工控主板軟鍵盤使用注意事項(xiàng)

    WinCE工控主板當(dāng)窗口焦點(diǎn)位于輸入框時(shí)會(huì)自動(dòng)彈出軟鍵盤。使用SipShowIM函數(shù)可以控制軟鍵盤的顯示與關(guān)閉,SipSetCurrentIM函數(shù)可以切換軟鍵盤類型。 另外,EM335x工控主板
    的頭像 發(fā)表于 02-04 10:18 ?1477次閱讀
    英創(chuàng)信息技術(shù)WINCE工控主板<b class='flag-5'>軟鍵盤</b>使用注意事項(xiàng)

    電腦怎么打開軟鍵盤,具體操作步驟的介紹

    按下快捷鍵WIN+R打開【運(yùn)行】,在【運(yùn)行】窗口中輸入osk,點(diǎn)擊確定。 已經(jīng)打開windows系統(tǒng)自帶的軟鍵盤。 win8系統(tǒng)還可以鼠標(biāo)右鍵點(diǎn)擊任務(wù)欄空白處,單擊【工具欄】中的【觸摸鍵盤】。 點(diǎn)擊
    發(fā)表于 02-03 14:36 ?2411次閱讀

    Javascript編寫的軟鍵盤代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Javascript編寫的軟鍵盤代碼免費(fèi)下載。
    發(fā)表于 01-26 14:15 ?7次下載
    Javascript編寫的<b class='flag-5'>軟鍵盤</b>代碼免費(fèi)下載