如何更改windowSoftInputMode

时间:2015-01-30 14:01:39

标签: java android window-soft-input-mode

我有一个Android应用程序,它的工作原理。在一个活动中,我有一个简单的EditText和一个Button。因此,当我单击EditText时,键盘正在显示,但它在按钮上。我不想要这个,我不知道当键盘显示时是否有可能转移到组件顶部。

这是AndroidManifest的代码:

<activity
   android:name="com.bioresult.geopointer.activity.settingActivity"
   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
   android:windowSoftInputMode="stateVisible|adjustResize"
   android:configChanges="orientation|screenSize">            
</activity>

这是活动的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:background="#4d4d4d"
    android:gravity="center_horizontal"
    android:baselineAligned="false">

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical"
        android:layout_gravity="center_vertical|center_horizontal"
        android:gravity="center_vertical|center_horizontal"
        android:layout_margin="15dp">

        <EditText
           android:id="@+id/editTextPartitaIva" 
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:hint="@string/nomeAzienda"
           android:lines="1"
           android:singleLine="true"/>   

        <Button 
           android:id="@+id/buttonSalva" 
           android:layout_width="match_parent"
           android:layout_height="40dp"
           android:layout_marginTop="15dp"
           android:textColor="#FFFFFF"
           android:text="@string/salva"
           android:textSize="20sp"
           android:onClick="salva"
           android:background="@drawable/salva_partitaiva_button"
           />
    </LinearLayout>



</LinearLayout>

1 个答案:

答案 0 :(得分:1)

https://code.google.com/p/android/issues/detail?id=5497

要避免这种情况,请删除活动的FullScreen主题

来自FLAG_FULLSCREEN

  

窗口标志:隐藏所有屏幕装饰(例如状态栏)   显示此窗口时。这允许窗口使用   整个显示空间为自己 - 状态栏将被隐藏   设置了此标志的应用程序窗口位于顶层。全屏   窗口将忽略SOFT_INPUT_ADJUST_RESIZE的值   window的softInputMode字段;窗口将保持全屏,并将   没有调整大小。