android 弹出输入法 及遮挡 相关问题

   开始整理 弹出输入法全屏问题 。

先看 布局文件

<?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窗口。

  1.让EditText失去焦点,使用EditText的clearFocus方法

  2. 强制隐藏Android输入法窗口,在IME类中我们通过

  InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 实例化输入法控制对象,通过hideSoftInputFromWindow来控制,其中第一个参数绑定的为需要隐藏输入法的EditText对象,比如imm.hideSoftInputFromWindow(etAndroid123.getWindowToken(), 0);


http://www.android123.com.cn/androidkaifa/849.html


 

  如何用Java代码控制Android软键盘的显示和隐藏呢? 过去我们在 EditText中显示隐藏Android输入法窗口 提到过,部分网友可能没有太注意。

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEdit.getWindowToken(), 0); //myEdit是你的EditText对象

 下面就可以通过下面方法可以恢复显示

 boolean  showSoftInput(View view, int flags, ResultReceiver resultReceiver)
 boolean  showSoftInput(View view, int flags)
 void  showSoftInputFromInputMethod(IBinder token, int flags)

 

1 不遮挡输入框

<item name="android:imeOptions">actionNext|flagNoExtractUi</item>

 

2  不遮挡整个 activity

<activity
            android:name=".KeyBoardActivity"
            android:label="@string/app_name" android:windowSoftInputMode="adjustResize">

以后遇到问题继续添加
 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值