当前位置: 首页 > news >正文

做网站时的兼容问题南阳移动端网站制作

做网站时的兼容问题,南阳移动端网站制作,wordpress 漂亮的博客,什么网站可以做报名系统在项目开发过程中#xff0c;界面包含EditText输入框时#xff0c;输入内容时软键盘弹起。但是此时我们调用界面中自定义的返回按钮执行.finish()方法销毁Activity后发现软键盘并没有跟随关闭收回#xff0c;参考了网上各种方法后#xff0c;试验总结出自己项目中可用的方案…在项目开发过程中界面包含EditText输入框时输入内容时软键盘弹起。但是此时我们调用界面中自定义的返回按钮执行.finish()方法销毁Activity后发现软键盘并没有跟随关闭收回参考了网上各种方法后试验总结出自己项目中可用的方案。注意此篇记录的是调用.finish()返回时软键盘未回收问题而非手机本身的back键(手机本身的back键点击是会先收回软键盘在销毁Activity)。1、在AndroidManifest.java清单文件的标签下加入stateUnspecified。使用环境是在ActivityB开启ActivityCActivityC中包含EditText点击输入框获取焦点使软键盘弹出然后调用自定义返回按钮执行.finish()方法当ActivityC销毁后返回到ActivityB界面时软键盘未回收问题此时可以在AndroidManifest.java的ActivityB的标签下添加android:windowSoftInputModestateUnspecified。注此方案在我的项目中使用无效在此记录。B界面设置android:windowSoftInputMode键盘是否自动回收stateUnspecified✓stateUnchanged✗stateHidden✗stateAlwaysHidden✗stateVisible✗stateAlwaysVisible✓stateHidden✗不指定✓2、在Activity的onDestory方法中监测软键盘是否存在存在则回收。备注此方法不稳定在Activity中不包含EditText时会莫名其妙的弹起软键盘。Overrideprotected void onDestroy() {super.onDestroy();InputMethodManager imm (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);if (imm ! null) {imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);}}3、在.finish()前先收回软键盘在每个Activity中调用.finish()前手动调用收回软键盘方法此方案测试过几个页面可以使用。在使用时最好判断软键盘是否有显示若显示则回收否则忽略。OnClick({R.id.iv_back)void iv_depart_back(View view){hideInput()finish();}protected void hideInput() {super.onDestroy();InputMethodManager imm (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);if (imm ! null) {imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);}}4、自定义View覆写dispatchKeyEventPreIme(KeyEvent event)方法此方案未测试针对现有的项目不好再去改动之前已经定义好的View内容所以是新开启项目的可以尝试使用。import android.app.Activity;import android.content.Context;import android.util.AttributeSet;import android.view.KeyEvent;import android.view.inputmethod.InputMethodManager;import android.widget.RelativeLayout;/*** Finishes the containing activity on BACK, even if input method is showing.*/public class SearchActivityView extends RelativeLayout {public SearchActivityView(Context context) {super(context);}public SearchActivityView(Context context, AttributeSet attrs) {super(context, attrs);}public SearchActivityView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}private Activity getActivity() {Context context getContext();if (context instanceof Activity) {return (Activity) context;} else {return null;}}/*** Hides the input method.*/protected void hideInputMethod() {InputMethodManager imm (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);if (imm ! null) {imm.hideSoftInputFromWindow(getWindowToken(), 0);}}/*** Overrides the handling of the back key to dismiss the activity.*/Overridepublic boolean dispatchKeyEventPreIme(KeyEvent event) {Activity activity getActivity();if (activity ! null event.getKeyCode() KeyEvent.KEYCODE_BACK) {KeyEvent.DispatcherState state getKeyDispatcherState();if (state ! null) {if (event.getAction() KeyEvent.ACTION_DOWN event.getRepeatCount() 0) {state.startTracking(event, this);return true;} else if (event.getAction() KeyEvent.ACTION_UP !event.isCanceled() state.isTracking(event)) {hideInputMethod();activity.onBackPressed();return true;}}}return super.dispatchKeyEventPreIme(event);}}5、设置自定义的返回按钮响应系统的back键在点击事件中执行此方式需要在线程中执行未进行测试。new Thread () {public void run () {try {Instrumentation inst new Instrumentation();inst.sendKeyDownUpSync(KeyEvent. KEYCODE_BACK);} catch(Exception e) {e.printStackTrace();}}}.start();6、最终解决方案(方案3改良版本)方案3中的方式可以用但是有弊端需要每个Activity中单独添加如果之前在Base基类中定义过统一的关闭方式修改还是比较方便的。但是如果没有也没关系。我们可以在Base基类中覆写finisi()方法来关闭软键盘。Overridepublic void finish() {super.finish();hideKeyBoard();}/*** 关闭软键盘*/public void hideKeyBoard() {InputMethodManager imm (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);if(imm.isActive()getCurrentFocus()!null){if (getCurrentFocus().getWindowToken()!null) {imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);}}}总结上述方案1、2、3都测试过在不同机型上使用效果都有差异最后的方案6在现有的测试机上测试都可以正常显示和关闭在此进行记录。
http://wiki.neutronadmin.com/news/206367/

相关文章:

  • 做下一个盗版小说网站广州做网站公司哪家好
  • 济南网站建设手机wordpress如何导出主题
  • 黑龙江 俄语网站制作自己想申请一个公司
  • 精品下载站Add-ons wordpress
  • 济南网站制作哪家最好centos部署wordpress
  • c网站开发案例详解今天出入济南最新通知
  • 泰安高级网站建设推广怎么注册一个企业邮箱
  • 分类目录网站怎么做乐器销售网站模板
  • 中国移动的5G网站建设给了谁太原网站建设培训
  • 网站开发对cpu要求高吗开一家网络公司需要什么
  • 新开传奇网站发布网单职业如何优化网站代码
  • 网站换程序301汉中城乡建设网站
  • 利津网站建设哪家好企业信息公开网站
  • 想建一个网站wordpress 笑话模板
  • 重庆建设工程查询网站php网站系统
  • 门户网站建设平台奉节做网站
  • 凡科建站官网怎么样公司的网站怎么建设
  • 徐州建站公司模板最好网站建设公司制作平台
  • 企业怎样做网站开一个软件开发公司需要多少钱
  • 商丘做网站哪家好全网营销思路
  • 大气网站首页模板集团网站建设基础方案
  • 个人网站如果做c2g的代表性电商平台
  • 做招聘网站排名深圳景观设计公司排行
  • 建设网站公司排名领硕网站seo优化
  • 东莞网站营销佛山网站建设优势
  • 哈尔滨的网站建设公司职工之家网站开发新闻稿
  • 青岛移动网站开发网站内的地图导航怎么做的
  • 淄博乐达信息技术网站页面设计层级一般控制
  • 响应式手机网站建设简单制作网站的过程
  • 查网站怎么做的广州建网站哪儿济南兴田德润简介