欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android收起軟鍵盤(pán),安卓用鍵盤(pán)

Android 手機(jī)軟鍵盤(pán)的彈起和關(guān)閉的監(jiān)聽(tīng)

?在很多Android App 開(kāi)發(fā)的過(guò)程中,需要對(duì)Activity 中 軟鍵盤(pán)的彈起和關(guān)閉進(jìn)項(xiàng)監(jiān)聽(tīng),但是Andoid中并沒(méi)有提供相對(duì)應(yīng)的api進(jìn)行監(jiān)聽(tīng), 我有一個(gè)簡(jiǎn)單的方法。

在晉中等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都營(yíng)銷網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,晉中網(wǎng)站建設(shè)費(fèi)用合理。

首先需要知道一些基礎(chǔ)知識(shí)

在manifest文件中可以設(shè)置Activity的android:windowSoftInputMode屬性,這個(gè)屬性值常見(jiàn)的設(shè)置如下:android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

那么這里值的含義列表如下:

1、stateUnspecified:軟鍵盤(pán)的狀態(tài)并沒(méi)有指定,系統(tǒng)將選擇一個(gè)合適的狀態(tài)或依賴于主題的設(shè)置

2、stateUnchanged:當(dāng)這個(gè)activity出現(xiàn)時(shí),軟鍵盤(pán)將一直保持在上一個(gè)activity里的狀態(tài),無(wú)論是隱藏還是顯示

3、stateHidden:用戶選擇activity時(shí),軟鍵盤(pán)總是被隱藏

4、stateAlwaysHidden:當(dāng)該Activity主窗口獲取焦點(diǎn)時(shí),軟鍵盤(pán)也總是被隱藏的

5、stateVisible:軟鍵盤(pán)通常是可見(jiàn)的

6、stateAlwaysVisible:用戶選擇activity時(shí),軟鍵盤(pán)總是顯示的狀態(tài)

7、adjustUnspecified:默認(rèn)設(shè)置,通常由系統(tǒng)自行決定是隱藏還是顯示

8、adjustResize:該Activity總是調(diào)整屏幕的大小以便留出軟鍵盤(pán)的空間

9、adjustPan:當(dāng)前窗口的內(nèi)容將自動(dòng)移動(dòng)以便當(dāng)前焦點(diǎn)從不被鍵盤(pán)覆蓋和用戶能總是看到輸入內(nèi)容的部分

案例:

1.我們需要將監(jiān)聽(tīng)所在的Activity在Manifest文件中的設(shè)置為如下形式:

activity?

android:name="com.zy.project.MainActivity"

android:label="@string/app_name"

android:windowSoftInputMode="stateAlwaysHidden|adjustResize"

intent-filter

? ? ?action android:name="android.intent.action.MAIN/

? ? category android:name="android.intent.category.LAUNCHER/

/intent-filter

/activity

當(dāng)有軟鍵盤(pán)彈起時(shí),Activity的布局大小會(huì)被滾動(dòng)上去,但是你仍然可以通過(guò)滑動(dòng)瀏覽所有。

2 需要在外層布局文件設(shè)置一個(gè)id,并在activity 中設(shè)置監(jiān)聽(tīng)

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnLayoutChangeListener;

import android.widget.Toast;

public class MainActivity extends Activity implements OnLayoutChangeListener{

//Activity最外層的Layout視圖

private View rootView;

//屏幕高度

private int screenHeight = 0;

//軟件盤(pán)彈起后所占高度閥值 一般是占用屏幕的1/3

private int keyHeight = 0;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

rootView = findViewById(R.id.root_layout);

//獲取屏幕高度

screenHeight = this.getWindowManager().getDefaultDisplay().getHeight();

//閥值設(shè)置為屏幕高度的1/3

keyHeight = screenHeight/3;

}

@Override

protected void onResume() {

super.onResume();

//添加layout大小發(fā)生改變監(jiān)聽(tīng)器

rootView.addOnLayoutChangeListener(this);

}

@Override

public void onLayoutChange(View v, int left, int top, int right,int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {

//old是改變前的左上右下坐標(biāo)點(diǎn)值,沒(méi)有old的是改變后的左上右下坐標(biāo)點(diǎn)值

// System.out.println(oldLeft + " " + oldTop +" " + oldRight + " " + oldBottom);

// System.out.println(left + " " + top +" " + right + " " + bottom);

//現(xiàn)在認(rèn)為只要控件將Activity向上推的高度超過(guò)了1/3屏幕高,就認(rèn)為軟鍵盤(pán)彈起

if(oldBottom != 0 bottom != 0 (oldBottom - bottom keyHeight)){

Toast.makeText(MainActivity.this, "監(jiān)聽(tīng)到軟鍵盤(pán)彈起...", Toast.LENGTH_SHORT).show();

}else if(oldBottom != 0 bottom != 0 (bottom - oldBottom keyHeight)){

Toast.makeText(MainActivity.this, "監(jiān)聽(tīng)到軟件盤(pán)關(guān)閉...", Toast.LENGTH_SHORT).show();

}

}

本文來(lái)自:

Android 點(diǎn)擊空白或滑動(dòng)時(shí)候關(guān)閉軟鍵盤(pán)(有scrollview的坑)

1、一般來(lái)說(shuō)直接傳parent_resid就可以了。但是!!!

2、scrollview不能onclick監(jiān)聽(tīng),但是要監(jiān)聽(tīng)他的點(diǎn)擊和滑動(dòng)就得用ontouch監(jiān)聽(tīng)

3、如果parent下有個(gè)差不多占據(jù)整個(gè)屏幕的scrollview請(qǐng)傳scrollview_resid比較好,因?yàn)閜arent_resid被遮擋了,監(jiān)聽(tīng)不到。。。

android 怎么讓鍵盤(pán)收回

android鍵盤(pán)收回的話,可以調(diào)用系統(tǒng)的方法:

隱藏軟鍵盤(pán):

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

// 隱藏軟鍵盤(pán)

imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);

Fragment中與顯示同理。

Android 底部按鈕被軟鍵盤(pán)頂起問(wèn)題解決

我們目前的項(xiàng)目是采用單 Activity 多 Fragment 的架構(gòu)模式, AndroidManifest.xml 內(nèi) MainActivity 的配置如下所示。

stateHidden

狀態(tài)隱藏,如果我們?cè)O(shè)置了這個(gè)屬性,鍵盤(pán)狀態(tài)就一定是隱藏的,不管上個(gè)界面是什么狀態(tài),也不管當(dāng)前界面有沒(méi)有輸入的需求,就是不顯示軟鍵盤(pán)。

adjustResize

調(diào)整大小狀態(tài),這個(gè)屬性表示 Activity 的主窗口總是會(huì)被調(diào)整大小來(lái)保證軟鍵盤(pán)的顯示空間。如果界面中有可滑動(dòng)控件,顯示效果跟 adjustUnspecified 顯示效果一樣;如果界面中沒(méi)有可滑動(dòng)控件,軟鍵盤(pán)可能會(huì)蓋住一些控件(布局的位置不會(huì)發(fā)生變化,可能獲取了焦點(diǎn)的控件被軟鍵盤(pán)蓋住)。

一般來(lái)說(shuō),我們的布局分為兩種

第一種布局是不會(huì)出現(xiàn)軟鍵盤(pán)把底部按鈕頂起的情況,首先軟鍵盤(pán)的打開(kāi)實(shí)際上是一個(gè) Dialog,而我們?cè)谂渲梦募?nèi)的 adjustResize 屬性是在頁(yè)面的根布局 decorView 的子 view 也就是一個(gè)線性布局內(nèi)通過(guò)設(shè)置 paddingBottom = 軟鍵盤(pán)高度,這樣其實(shí)相當(dāng)于把整個(gè)滾動(dòng)布局的高度減少了,所以底部的按鈕也只是變?yōu)樾枰獫L動(dòng)才能看到。

第二種情況通常為一個(gè)繼續(xù)按鈕始終處于頁(yè)面的底部,中間的內(nèi)容可以滾動(dòng),當(dāng)根布局的內(nèi)邊距等于軟鍵盤(pán)高度時(shí),底部按鈕就看起來(lái)像是被頂起。

1、監(jiān)聽(tīng)軟鍵盤(pán)的打開(kāi)收起

2、修改 windowSoftInputMode

adjustPan

如果設(shè)置了這個(gè)屬性,當(dāng)軟鍵盤(pán)彈出的時(shí)候,系統(tǒng)會(huì)通過(guò)布局的移動(dòng),來(lái)保證用戶要進(jìn)行輸入的輸入框在用戶的視線范圍內(nèi)。如果界面沒(méi)有可滑動(dòng)控件,顯示效果和 adjustUnspecified 效果一樣;如果界面有可滑動(dòng)控件,在軟鍵盤(pán)顯示的時(shí)候,可能會(huì)有一些內(nèi)容顯示不出來(lái)。

資料借鑒

Android中Activity的android:windowSoftInputMode屬性

網(wǎng)站標(biāo)題:android收起軟鍵盤(pán),安卓用鍵盤(pán)
標(biāo)題URL:http://chinadenli.net/article17/dsgdjdj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)面包屑導(dǎo)航品牌網(wǎng)站制作企業(yè)網(wǎng)站制作網(wǎng)站設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)