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

汕头拿家做网站企业培训机构哪家最好

汕头拿家做网站,企业培训机构哪家最好,做网站的过程,专业网站背景 刚开始做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.zhongyajixie.com/news/55883.html

相关文章:

  • 昌吉回族自治州建设局网站发帖推广
  • 做网站前端开发的必备软件上海优化网站公司哪家好
  • 电影资源网站怎么做的网络推广的含义
  • 信融科技做网站推广可靠吗保定网站seo
  • 在百度做网站整合营销传播成功案例
  • 可以做推送的网站网络舆情监测中心
  • 网站后台排版css百度关键词优化软件怎么样
  • 有没有和小孩做的网站怎么创建自己的网站
  • 个人网站什么语言做青岛网站推广企业
  • 怎么建网站不用买空间a5站长网
  • 文化建设成就seo长尾关键词
  • 房地产公司网站建设与推广方案新手电商运营从哪开始学
  • 邮箱qq登录网页登陆入口seo网站推广教程
  • 布恩网站删除什么公司适合做seo优化
  • 巴中微信开发 做网站营销外包公司
  • 商城网站建设步骤今日新闻联播主要内容摘抄
  • 网站建设管理指导意见seo流量工具
  • 重庆百度优化广西seo快速排名
  • 在线是免费生成网长沙seo公司排名
  • 怎么样建公司网站360手机优化大师安卓版
  • 苏州网站小程序app开发公司免费软文推广平台都有哪些
  • 电子政务门户网站建设新媒体运营岗位职责
  • 做网站需要注册公司国内seo排名分析主要针对百度
  • 网站一般用什么软件做推广策略及推广方式
  • 无锡做网站选优易信网站优化是什么
  • 做日本外贸网站谷歌搜索引擎网页版入口
  • 专业网站建设在哪里太原今日新闻最新头条
  • 做个外贸网站大概多少钱广州seo网络培训课程
  • 做编程的 网站有哪些内容怎么进入百度推广账户
  • 网站网址有哪些郑州网站运营专业乐云seo