如何在键盘弹出时防止隐藏textView

时间:2014-07-02 16:47:48

标签: android xml android-layout

我有一个简单的相对xml与一个TextView和一个EditText但当用户触摸EditText时,当键盘出现时我的文本视图上升并消失..我怎样才能使它始终保持在中心?

这是我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp"
    tools:context="com.example.testtypecounter.MainActivity"
    tools:ignore="MergeRootFrame" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/CurrentView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="hjk"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="40sp" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:4)

来自doc

android:windowSoftInputMode=["stateUnspecified",
                                       "stateUnchanged", "stateHidden",
                                       "stateAlwaysHidden", "stateVisible",
                                       "stateAlwaysVisible", "adjustUnspecified",
                                       "adjustResize", "adjustPan"]

&#34;的 adjustResize &#34; = GT;

活动的主窗口始终调整大小,以便为屏幕上的软键盘腾出空间。

&#34;的 adjustPan &#34; = GT;

活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。

您可能必须在活动清单中使用以下内容

<activity android:windowSoftInputMode="adjustResize"> </activity>

答案 1 :(得分:2)

android:windowSoftInputMode="adjustResize"添加到清单中的活动代码中。

答案 2 :(得分:1)

试试这个......

    ScrollView scroll = (ScrollView)findViewById(R.id.scrollView1);
    scroll.setOnTouchListener(new OnTouchListener() {

     @Override
     public boolean onTouch(View v, MotionEvent event) {
     if (myEditText.hasFocus()) {
        myEditText.clearFocus();
       }
    return false;
      }
    });