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

汕头拿家做网站国际新闻最新

汕头拿家做网站,国际新闻最新,网页设计与制作的岗位职责,免费视频素材库app背景 刚开始做Android的时候,有一次遇到输入框位于页面底部,弹出的键盘老是遮挡输入框,这就给人一种感觉----不咋舒服。当时,网上百度了一遍,后面终于解决了,由于当时天天加班,没时间写博客&…

 背景

        刚开始做Android的时候,有一次遇到输入框位于页面底部,弹出的键盘老是遮挡输入框,这就给人一种感觉----不咋舒服。当时,网上百度了一遍,后面终于解决了,由于当时天天加班,没时间写博客,现在把他放出出来,也是总结下多年前的技术。解决方案有以下几种

一、在activity的oncreate方法中setContentView之前加上如下代码

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

二、在AndroidManifest.xml文件中对应的<activity>中加入。

android:windowSoftInputMode="stateVisible|adjustResize"
或
android:windowSoftInputMode="stateHidden|adjustResize"在这设置的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆盖在主题中设置的值各值的含义:【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示【C】stateHidden:用户选择activity时,软键盘总是被隐藏【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的【E】stateVisible:软键盘通常是可见的【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

效果会让屏幕整体上移

三、借用别人的SoftHideKeyBoardUtil工具类

   使用方式,直接在Activity页面的onCreate方法中加入

  SoftHideKeyBoardUtil.assistActivity(this);

 SoftHideKeyBoardUtil工具类代码


/*** android全屏/沉浸式状态栏下,* 键盘挡住输入框解决工具类*/
public class SoftHideKeyBoardUtil {public static void assistActivity(Activity activity) {new SoftHideKeyBoardUtil(activity);}private View mChildOfContent;private int usableHeightPrevious;private FrameLayout.LayoutParams frameLayoutParams;private SoftHideKeyBoardUtil(Activity activity) {//1、找到Activity的最外层布局控件,它其实是一个DecorView,它所用的控件就是FrameLayoutFrameLayout content = (FrameLayout) activity.findViewById(android.R.id.content);//2、获取到setContentView放进去的ViewmChildOfContent = content.getChildAt(0);//3、给Activity的xml布局设置View树监听,当布局有变化,如键盘弹出或收起时,都会回调此监听mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {//4、软键盘弹起会使GlobalLayout发生变化public void onGlobalLayout() {//5、当前布局发生变化时,对Activity的xml布局进行重绘possiblyResizeChildOfContent();}});//6、获取到Activity的xml布局的放置参数frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams();}// 获取界面可用高度,如果软键盘弹起后,Activity的xml布局可用高度需要减去键盘高度private void possiblyResizeChildOfContent() {//1、获取当前界面可用高度,键盘弹起后,当前界面可用布局会减少键盘的高度int usableHeightNow = computeUsableHeight();//2、如果当前可用高度和原始值不一样if (usableHeightNow != usableHeightPrevious) {//3、获取Activity中xml中布局在当前界面显示的高度int usableHeightSansKeyboard = mChildOfContent.getRootView().getHeight();//4、Activity中xml布局的高度-当前可用高度int heightDifference = usableHeightSansKeyboard - usableHeightNow;//5、高度差大于屏幕1/4时,说明键盘弹出if (heightDifference > (usableHeightSansKeyboard / 4)) {// 6、键盘弹出了,Activity的xml布局高度应当减去键盘高度frameLayoutParams.height = usableHeightSansKeyboard - heightDifference;} else {//6、键盘收起了,Activity的xml布局高度应当和可用高度一样frameLayoutParams.height = usableHeightSansKeyboard;}//7、 重绘Activity的xml布局mChildOfContent.requestLayout();usableHeightPrevious = usableHeightNow;}}private int computeUsableHeight() {Rect r = new Rect();mChildOfContent.getWindowVisibleDisplayFrame(r);// 全屏模式下:直接返回r.bottom,r.top其实是状态栏的高度return (r.bottom - r.top);}}

四、Layout上面再加一层ScrollView的封装

最终选择第三种方法,完美解决所遇到问题。

http://www.dt0577.cn/news/25351.html

相关文章:

  • 做网站的流程是怎么样的任务推广引流平台
  • 四川省建设安全协会网站帮别人发广告赚钱平台
  • wordpress网站佣金推广广州高端网站建设公司
  • 展示型网站建seo外包公司
  • 公司网站制作应该注意些什么雷神代刷网站推广
  • 自己做的网站打不开了企业网站制作与维护
  • 东港区网站制作广告公司招聘
  • WordPress和帝国安全关键词排名优化是什么意思
  • 汕头独立站建站深圳设计公司
  • 美女做羞羞的网站如何制作企业网站
  • wordpress 实现南山网站seo
  • 光谷做网站seo网站关键词排名软件
  • 做社区网站怎么做如何自己建一个网站
  • 外贸网站产品分析太原网站建设方案优化
  • 怎么建设局域网站悟空建站seo服务
  • 共享农业网站建设福州百度网站排名优化
  • 绵阳做网站搜索引擎优化的缺点包括
  • 南京做网站开发 待遇百度收录申请
  • 南阳网站建设xihewh北京seo排名优化网站
  • 网站开发的语言网络营销形式
  • 委托网站建设注意什么百度客服电话24小时客服电话
  • 上海微信网站开发seo优化方案模板
  • 公司网站关键词优化怎么做二级域名和一级域名优化难度
  • html网站模板源码宁波seo推广方式排名
  • bae做网站关键词优化案例
  • 做外贸网站外包百度网盘app下载
  • 淮北 网站建设怎样才能上百度
  • 宣传 网站建设方案石家庄学院
  • 绵阳科技网站建设今日新闻头条
  • 安宁网站建设正版搜索引擎优化