触摸编辑时,Android 键盘视图位于 EditText 前面
Posted
技术标签:
【中文标题】触摸编辑时,Android 键盘视图位于 EditText 前面【英文标题】:Android keypad view is in front of the EditText when touched to edit 【发布时间】:2014-06-25 14:47:02 【问题描述】:在图像 1 上,我有一个带有一些 textview 和 edittext 控件的布局,当用户触摸此特定布局的任何 EditText(其他活动没有此问题)时,键盘出现在 EditText 控件的前面,因此用户不能看看他在写什么,这很奇怪,图 2 显示了问题。这是我的 XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical" >
<RelativeLayout
android:layout_
android:layout_ >
<EditText
android:id="@+id/responsavelContratadaDiarioEditar"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_below="@+id/TextView71"
android:layout_marginBottom="10dp"
android:ems="10"
android:imeOptions="actionDone"
android:singleLine="true" >
<requestFocus />
</EditText>
<Button
android:id="@+id/dataVistoriaDiarioEditar"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_below="@+id/responsavelContratadaDiarioEditar"
android:text="Data da Vistoria" />
<TextView
android:id="@+id/TextView81"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_below="@+id/dataVistoriaDiarioEditarTexto"
android:text="Ponto de Controle"
android:textSize="18sp"
android:textStyle="bold" />
<EditText
android:id="@+id/pontoControleDiarioEditar"
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@+id/TextView81"
android:layout_weight="0.56"
android:ems="10"
android:gravity="top"
android:imeOptions="actionDone"
android:inputType="textMultiLine"
android:maxLines="10"
android:scrollbars="vertical"
android:singleLine="false" />
<TextView
android:id="@+id/TextView71"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_below="@+id/projeto_spinnerDiarioEditar"
android:text="Responsável contratada"
android:textSize="18sp"
android:textStyle="bold" />
<Spinner
android:id="@+id/projeto_spinnerDiarioEditar"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView11"
android:spinnerMode="dialog" />
<TextView
android:id="@+id/textView11"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="14dp"
android:text="Projeto"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/dataVistoriaDiarioEditarTexto"
android:layout_
android:layout_
android:layout_alignBottom="@+id/dataVistoriaDiarioEditar"
android:layout_toRightOf="@+id/dataVistoriaDiarioEditar"
android:clickable="false"
android:text="23/12/1989" />
</RelativeLayout>
</LinearLayout>
谢谢。
【问题讨论】:
Android soft keyboard covers edittext field 的可能重复项 @Setu 这个主题的答案都没有帮助我 好的,那么@crawletas 你可能想考虑你可以做些什么来让你的布局按照你的意愿工作。首先我会问,当您只有一个孩子用于 LinearLayout 时,为什么需要 LinearLayout 和 RelativeLayout?将 RelativeLayout 设为您的父布局并再次尝试这些解决方案。 【参考方案1】:在 <activity>
下的清单文件中使用以下属性:
android:windowSoftInputMode="adjustPan"
【讨论】:
@crawletas 你也试过“adjustResize”吗?或者您可能同时需要“adjustPan|adjustResize”。【参考方案2】:在您的清单文件中使用该活动名称下的任何一个。
<activity android:windowSoftInputMode="adjustResize" />
<activity android:windowSoftInputMode="adjustPan" />
【讨论】:
【参考方案3】:我在我的 onCreate() 方法中添加了这段代码,在 setContentView 之后它起作用了 :)
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
谢谢。
【讨论】:
有人给了你一个有效的答案,然后你创建了自己的答案并接受它作为一个有效的答案......以上是关于触摸编辑时,Android 键盘视图位于 EditText 前面的主要内容,如果未能解决你的问题,请参考以下文章