国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 中自定義Dialog樣式的Activity點擊空白處隱藏軟鍵盤功能(dialog不消失)

2019-12-12 02:59:46
字體:
來源:轉載
供稿:網友

一、需求觸發場景:

項目中需要開發帶有EditText的Dialog顯示,要求在編輯完EditText時,點擊Dilog的空白處隱藏軟鍵盤。但是Dialog不會消失。示例如下:

二、實現方法:

發布需求時,我個人曾想過直接通過new的方式直接創建Dialog,經過多次嘗試,無法實現要求,所以采用將Activity設置為Dialog樣式進行展示,調用方法實現需求。具體實現如下:

本次演示示例的工程結構:

2.1AndroidMainfest.xml配置文件

需要在配置文件中將需要顯示為dialog樣式的activity添加dialog主題(可調用系統自帶也可以自定義主題添加)

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.panhouye.dialoginput">  <application    android:allowBackup="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:supportsRtl="true"    android:theme="@style/AppTheme">    <activity android:name=".MainActivity">      <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />      </intent-filter>    </activity>    <activity android:name=".Main2Activity"      android:theme="@style/Base.V7.Theme.AppCompat.Light.Dialog"></activity>  </application></manifest>

2.2Java實現代碼

(1)BaseActivity作為本次Demo中Activity的基類,代碼實現如下:

package com.panhouye.dialoginput;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.view.MotionEvent;import android.view.inputmethod.InputMethodManager;/** * Created by pamhouye on 2017/4/25 0025. */public class BaseActivity extends AppCompatActivity {  @Override  public boolean onTouchEvent(MotionEvent event) {    // TODO Auto-generated method stub    if(event.getAction() == MotionEvent.ACTION_DOWN){      if(getCurrentFocus()!=null && getCurrentFocus().getWindowToken()!=null){        InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);        manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);      }    }    return super.onTouchEvent(event);  }}

(2)MainActivity實現代碼如下:

package com.panhouye.dialoginput;import android.content.Intent;import android.os.Bundle;import android.view.View;public class MainActivity extends BaseActivity {  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);  }  //dialog按鈕觸發事件方法  public void dialog(View view){    Intent intent = new Intent(this,Main2Activity.class);    startActivity(intent);  }}

(3)Main2Activity作為dialog樣式的Activity實現代碼如下:

package com.panhouye.dialoginput;import android.os.Bundle;import android.view.Gravity;import android.view.Window;import android.view.WindowManager;public class Main2Activity extends BaseActivity {  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main2);    //設置窗口對齊屏幕寬度    Window win = this.getWindow();    win.getDecorView().setPadding(0, 0, 0, 0);    WindowManager.LayoutParams lp = win.getAttributes();    lp.width = WindowManager.LayoutParams.MATCH_PARENT;    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;    lp.gravity = Gravity.CENTER;//設置對話框置頂顯示    win.setAttributes(lp);    //設置點擊外部空白處可以關閉Activity    this.setFinishOnTouchOutside(true);  }}

以上所述是小編給大家介紹的Android 中自定義Dialog樣式的Activity點擊空白處隱藏軟鍵盤功能(dialog不消失),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金乡县| 民丰县| 寿光市| 类乌齐县| 荆州市| 正安县| 松江区| 新津县| 凤阳县| 舟曲县| 安西县| 兴和县| 宁安市| 沙雅县| 淮滨县| 营山县| 信丰县| 哈密市| 关岭| 红安县| 右玉县| 德钦县| 鄄城县| 库车县| 白沙| 锡林浩特市| 遂宁市| 天门市| 临高县| 大足县| 五华县| 临颍县| 古丈县| 长泰县| 东乡| 万载县| 西平县| 施甸县| 子长县| 湘西| 闻喜县|