chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

軟鍵盤常見問題的解決方法

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

掃碼添加小助手

加入工程師交流群

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

重要信息被軟鍵盤遮擋:當軟鍵盤彈出時,輸入框或其它重要UI元素可能會被鍵盤遮擋,導致用戶無法看到或訪問它們。

軟鍵盤彈出導致布局錯位:內(nèi)容可能會不恰當上移,影響用戶體驗。

軟鍵盤彈出導致彈窗過度上抬:彈窗被鍵盤上頂,造成不好的體驗。

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

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

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

主動獲焦彈出軟鍵盤

有時候進入頁面,希望頁面中的輸入框能主動獲焦并且彈出軟鍵盤,方便用戶直接輸入,比如,點擊應用首頁的搜索框。這可以通過將輸入框的defaultFocus設置為true來實現(xiàn)。

TextInput()
 .defaultFocus(true)

代碼控制彈出軟鍵盤

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

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

代碼控制收起軟鍵盤

通過全局的焦點控制對象FocusController的clearFocus方法,軟鍵盤收起,例如在下面的搜索頁面中,點擊搜索按鈕時軟鍵盤收起。

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

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

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

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

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

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、軟鍵盤避讓機制

默認避讓效果

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

如果當前輸入框不會被軟鍵盤遮擋,則不上抬組件,如圖所示點擊輸入框1,組件不會上抬。

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

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

彈窗避讓可以通過BaseDialogOptions,設置彈窗的避讓模式KeyboradAvoidMode,當設置為默認避讓Default模式時,如果軟鍵盤彈出會覆蓋輸入框,彈窗整體會上抬,并且為了UX美觀,會存在默認的間隔,默認大小為16vp。

鍵盤避讓模式

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

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

3、軟鍵盤避讓常見問題

重要信息被軟鍵盤遮擋

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

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

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

軟鍵盤彈出導致布局錯位

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

想要頂部標題不被軟鍵盤向上抬,需要給標題組件設置

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

軟鍵盤彈出導致彈窗過度上抬

當用戶點擊彈窗底部的輸入框的時候,彈窗會整體上抬,輸入框上抬的距離也過多。

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

設置軟鍵盤和彈窗組件距離

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

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

    關(guān)注

    1

    文章

    687

    瀏覽量

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

    關(guān)注

    0

    文章

    11

    瀏覽量

    6514

原文標題:軟鍵盤布局適配指南

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    Labview寫軟鍵盤程序

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

    求教這個軟鍵盤的具體用法

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

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

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

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

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

    軟鍵盤

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

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

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

    請問如何在開發(fā)板中打開軟鍵盤?

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

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

    HarmonyOS中軟鍵盤的獲取和關(guān)閉應該用那個類。看文檔里只與js的的softkeyboardenabled6軟鍵盤。
    發(fā)表于 05-11 10:13

    MiniGUI的軟鍵盤快速設計方法

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

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

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

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

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

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

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

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

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

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

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

    Javascript編寫的軟鍵盤代碼免費下載

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