Android 軟鍵盤自動彈出和關閉

在我們寫修改信息或者搜索,修改密碼等界面的時候,用戶進入這個界面的主要目的就是輸入修改/查找 某些信息,為了用戶體驗應該自動彈出軟鍵盤而不是讓用戶主動點擊輸入框才彈出。

1.軟鍵盤的自動彈出

private void showKeyboard(){InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);inputMethodManager.showSoftInput(editText, 0);}

對于界面比較復雜的情況的時候,軟鍵盤可能無法正常的彈出,需要延遲加載。即在界面加載完成之后,彈出軟鍵盤

  • 1.1 使用 定時器 schedule
Timer timer = new Timer();timer.schedule(new TimerTask()   {public void run() { InputMethodManager inputManager = (InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, 0); } }, 998);
  • 1.2 使用 handler
    這里寫圖片描述

    這里寫圖片描述

2.軟鍵盤的關閉

我遇到過一種情況是,首頁是scrollView 包裹的界面,滾動一段距離后進入下一個頁面,會彈出軟鍵盤,當關閉該界面的時候(即直接 finish()),回到首頁的時候,scrollView 不是原來的位置了。處理辦法就是 在有軟鍵盤彈出的頁面,先關閉軟鍵盤,再 finish()界面。

private void closeKeyboard() {View view = getWindow().peekDecorView();if (view != null) { InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); } }

3.軟鍵盤把某些布局擠上去了的情況

<activityandroid:name=".activity.DetailActivity"android:screenOrientation="portrait"android:windowSoftInputMode="adjustPan"android:theme="@style/AppTheme.NoActionBar.Translucent"/>

主要就是 windowSoftInputMode 這個屬性,其中2個比較重要的是 adjustPan 和 adjustResize
adjustPan 不會把底部的布局給擠上去,例如relateLayout 布局中 放到bottom 的布局
adjustResize 是自適應的,會把底部的擠上去。

更詳細的可以了解下 windowSoftInputMode 這個屬性,好多大神的博客上都有說明,我這就不贅述了。

轉載于:https://www.cnblogs.com/Free-Thinker/p/6957448.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372015.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372015.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372015.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android adb殺死服務,Android app是如何殺掉的

1. adb shell kill -9 pid_of_appAMS定義了AppDeathRecipientAPP 在 attachApplication -> attachApplicationLockedAMS里會注冊 App 進程的 BinderDeath通知AppDeathRecipient adr new AppDeathRecipient(app, pid, thread);thread.asBinder().linkToDeath(adr, 0);當App進…

iOS學習筆記39-ReactiveCocoa入門

FRP&#xff0c;全稱為Functional Reactive Programming&#xff0c;是一種響應變化的編程范式&#xff0c;最近幾年比較火&#xff0c;大概的理解就像這樣&#xff1a; 當a的值或者b的值發生變化時&#xff0c;c的值會自動響應a的值或b的值變化的信號&#xff0c;自動更正自己…

使用密碼摘要生成器擴展JMeter

最近&#xff0c;我不得不處理一個帶有50,000條用戶記錄的OpenLDAP實例&#xff0c;并進行一些壓力測試。 JMeter是填充LDAP的最佳選擇。 但是&#xff0c;在我的情況下&#xff0c;OpenLDAP配置為不接受任何明文密碼。 因此&#xff0c;我無法使用通過JMeter LDAP Request采…

制造業數字化轉型核心不止是技術

一、制造業的數字化轉型意味著什么&#xff1f; 在當今的制造業領域&#xff0c;數字化轉型意味著通過集成數字技術來增強傳統的制造方法、產品和勞動力的過程。這些技術包括一系列創新&#xff0c;如自動化軟件、電子商務系統、傳感器、工業機器人等。 二、制造業數字化轉型的…

分類測試以減少構建時間

在繼續本文的主要內容之前&#xff0c;讓我們先進行一些定義。 單元測試 單元測試是小型的&#xff08;測試一種用例或單元&#xff09;&#xff0c;在內存中運行&#xff08;不與數據庫&#xff0c;消息隊列等交互&#xff09;&#xff0c;可重復且快速的測試。 對于我們的對…

android橫向展示狀態,【報Bug】Android橫屏狀態下啟動App,即使在App.vue中鎖定豎屏,但是首頁nvue中的rpx單位是按照啟動的橫豎屏狀態顯示的!...

詳細問題描述(DCloud產品不會有明顯的bug&#xff0c;所以你遇到的問題大都是在特定環境下才能重現的問題&#xff0c;請仔細描述你的環境和重現方式&#xff0c;否則DCloud很難排查解決你的問題)[內容]重現步驟[步驟][結果][期望]nvue首頁rpx單位能夠根據App.vue鎖定的屏幕方向…

property修飾關鍵字

修飾符按作用區分&#xff1a;線程安全相關&#xff0c;內存相關&#xff0c;讀寫權限相關&#xff0c;set和get,是否可為空, class 一.默認值 property NSArray *dataArray; 默認的是&#xff1a;atomic&#xff0c;strong&#xff08;有的文章寫的居然是assign,我認為還是str…

高精度相關模板.

1 2 /*3 高精度加法.4 */5 #include<cstring>6 #include<cstdio>7 #include<iostream>8 #define MAXN 100019 using namespace std;10 int a[MAXN],b[MAXN],c[MAXN],l1,l2,l3;11 char m[MAXN],n[MAXN];12 void slove()13 {14 l3max(l1,l2);15 for(in…

5分鐘內Google App Engine上的Vaadin App

在本教程中&#xff0c;您將學習如何創建第一個Vaadin Web應用程序&#xff0c;如何在本地AppEngine開發服務器上運行它以及如何將其部署到Google App Engine基礎結構。 所有這些大約需要5到10分鐘。 是的&#xff0c;如果您安裝了必要的先決條件&#xff0c;則可以立即開始運行…

linux系統調用的封裝格式,ARM Linux系統調用的原理

ARM Linux系統調用的原理ARM Linux系統調用的原理操作系統為在用戶態運行的進程與硬件設備進行交互提供了一組接口。在應用程序和硬件之間設置一個額外層具有很多優點。首先&#xff0c;這使得編程更加容易&#xff0c;把用戶從學習硬件設備的低級編程特性中解放出來。其次&…

(延遲兩秒,跳轉相應頁面)(返回到上一個頁面并刷新)

1.setTimeout("window.location.href /moment/reason",2000);2.返回到上一個頁面并刷新 self.location document.referrer;2.1常見的幾種刷新方式 a.history.go(-1) 返回上一頁 b.location.reload() 刷新當前頁面 c.history.back() 返回上一頁2.2當…

檢索字符創 php

strstr()可以返回匹配的值 echo strstr("localhost", "os");返回ost echo substr_count("gggggs", "g"); 返回檢索匹配字符創次數 substr_replace 字串替換函數轉載于:https://www.cnblogs.com/lidepeng/p/6078064.html

android8強制將app移到sd卡,小內存手機?APP強制轉移至SD卡教程

雖然近兩年手機的機身內存越做越大&#xff0c;但是身邊總還是有些朋友在使用幾年前的手機。而面對如今海量的豐富應用&#xff0c;早年的手機中內置的存儲空間已經開始捉襟見肘。雖說對于這類機型系統通常都提供了將APP轉移至外置內存卡的功能&#xff0c;可是依然有一些頑固的…

在沒有XML的情況下測試Spring和Hibernate

我非常熱衷于Spring 3中的改進&#xff0c;這些改進最終使您能夠在IDE和編譯器的適當支持下從XML遷移到純Java配置。 它并沒有改變Spring是一個龐大的套件這一事實&#xff0c;并且有時發現您需要的東西可能需要一段時間。 圍繞Hibernate的無XML單元測試就是這樣一回事。 我知道…

Observer觀察者設計模式

Observer設計模式主要包括以下兩種對象: (1)被觀察對象:Subject,它往往包含其他對象感興趣的東西,上面例子中熱水器中就是Subject(被監視對象); (2)觀察對象:Observer,它觀察著Subject,當Subject中的某件事發生后,會告知Observer,Obersver會采取相應的行動。上面例子中顯示器和…

最小生成樹 prime zoj1586

題意&#xff1a;在n個星球&#xff0c;每2個星球之間的聯通需要依靠一個網絡適配器&#xff0c;每個星球喜歡的網絡適配器的價錢不同&#xff0c;先給你一個n&#xff0c;然后n個數&#xff0c;代表第i個星球喜愛的網絡適配器的價錢&#xff0c;然后給出一個矩陣M[i][j]代表第…

android 書架菜單,Android入門3--做一個書架

修改名稱創建項目的時候&#xff0c;APP的名字取為英文或者拼音&#xff0c;是為了簡便&#xff0c;但是顯示在界面上&#xff0c;我們當然希望它是中文的。taoguanstring>我們要做的很簡單&#xff0c;就是在string.xml中&#xff0c;將app_name的內容修改為我們希望的名字…

第一節:整體介紹

Python版本3.5.2&#xff0c;Django版本1.10 創建一個Django工程&#xff0c;并且生成一個名字為mainsite的app django-admin.py startproject myblog python3 manage.py startapp mainsite 文件結構如下&#xff1a; x-powerxpower-CW65S:~/chen/myblog$ tree ./ ./ ├── ma…

Spring @Configuration和FactoryBean

考慮使用FactoryBean通過Spring配置文件定義緩存&#xff1a; <cache:annotation-driven /><context:component-scan base-packageorg.bk.samples.cachexml></context:component-scan><bean idcacheManager classorg.springframework.cache.support.Simpl…

cookie解決 未登錄加入購物車 第一次訪問彈出新手引導頁面

瀏覽器攜帶cookie到服務器, 點擊加入購物車-->后臺檢查-->是否登錄(有沒有sessionid) 沒有登錄--->secookie()返回給瀏覽器,把傳遞過來的商品id, 屬性(多個屬性逗號拼接),數量存起來,(序列號成字符串_不同屬性用下劃線拼接) 轉載于:https://www.cnblogs.com/bj-tony/p…