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中解决这个问题还有待解决,希望有人知道的可以分享出来。