开始整理 弹出输入法全屏问题 。
先看 布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:text="@string/hello" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:id="@+id/editText"
/>
</RelativeLayout>
显示效果如下:
当 点击 输入框 输入 文字的时候 ,发现已经可以 实现 弹出输入法 把 输入框 顶上去 了 ,如下:
ok,不知道是不是我 外层用的Relativelayout的 才会 让 自适应 ,我试试 线性布局 。
布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:text="@string/hello"
android:layout_weight="11"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:id="@+id/editText"
android:layout_weight="1"
/>
</LinearLayout>
在模拟器上运行一下,发现也可以 实现 顶起最下端 输入框。
奇怪了,以前也遇到过 弹出输入法 占满整个屏幕的问题,今天怎么遇不到了呢,改成横屏试试,恩,终于看到了
占满整个屏幕 ,怎么解决呢,在网上找了一下,在代码中加入:
editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
即可解决问题,加上去 效果:
ok,到这里 横屏也解决了,那能不能通过 在 布局文件中 来实现呢?
在 布局中加入:
android:imeOptions="flagNoExtractUi"
就可以实现同样的效果了 。
发现上面的都是 把editText 和 TextView 整体上移,有么有 可能 弹出键盘 把 输入框推上去,而其他东西位置不变?
这个 试了 下,没找到方法 ,上述 已经可以满足需求,但 坚信 蛋疼的需求 永远都会层出不穷。。。
好,上面解决了 输入法弹出框 遮盖屏幕的问题,下面说点其他的,也是关于输入法(转载):
细心的网友可能发现我们在使用EditText时,会自动的弹出输入法面板,这里我们提供多种方法可以不让程序默认升起IME窗口。
http://www.android123.com.cn/androidkaifa/849.html
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEdit.getWindowToken(), 0); //myEdit是你的EditText对象
1 不遮挡输入框
<item name="android:imeOptions">actionNext|flagNoExtractUi</item>
2 不遮挡整个 activity
<activity
android:name=".KeyBoardActivity"
android:label="@string/app_name" android:windowSoftInputMode="adjustResize">
以后遇到问题继续添加