Android虚拟键盘会挡住一点EditText输入框的解决方法

1、最基本的问题是从虚拟键盘弹出,输入框不会被顶上去,而是直接被输入框挡住。这个问题网上有很多的解决方法

  比如:在配置文件下的相应Activity下设置android:windowSoftInputMode="adjustResize"。

2、后来我还遇到了个更恶心的现象,虚拟键盘会把输入框顶上去,但还是会挡住部分的输入框,大概差不多有1/5被挡住,头疼的问题。

  解决办法是:加入滚动条ScrollView。

  加入滚动条后又出现了两个问题:1、ScrollView加入在背景图外面:分辨率小的手机屏幕上会出现滚动条,这是我们所不愿意看到的。

                  2、ScrollView加入在背景图的里面:输入框会被输入法完美的顶上去,但背景图没滚动条,会被压缩。

  解决办法:在代码中动态调整,在1方法的前提下重写onWindowFocusChanged方法,代码中调整背景图的大小,使它不出现滚动条:

背景图的高度为:手机高度分辨率-状态栏高度。

  

        Rect frame = new Rect();  
        getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  
        // 状态栏高度  
        statusBarHeight = frame.top;
        DisplayMetrics dm = new DisplayMetrics();   
        getWindowManager().getDefaultDisplay().getMetrics(dm);   
	linearLayout1=(LinearLayout)findViewById(R.id.linearLayout1);
	LayoutParams params= new LayoutParams(dm.widthPixels, dm.heightPixels-statusBarHeight);
	linearLayout1.setLayoutParams(params);    

  这样会导致的问题是布局xml不好调整,如果之后还要加入其他控件的话,你会发现效果会因为动态调整和静态调整联合用的带来的负面效果。

  如何只在xml中解决这个问题还有待解决,希望有人知道的可以分享出来。

--------------------------------------- 贵有恒,何必三更起五更眠。最无益,只怕一日曝十日寒。--------------------------------------------
原文地址:https://www.cnblogs.com/lhxfzu/p/3229526.html