我有一个EditText,在第一次使用时不会被键盘遮挡。但是当你关闭键盘并再次点击EditText时,它会覆盖掉EditText。
我已经花了数小时研究这个问题,并得出结论它与EditText的这两个属性有关:
android:inputType="number"
android:gravity="center"
如果我删除其中任何一个,即在我的清单中添加的adjustPan,它会始终按照承诺工作。似乎是Android的一个bug。但我需要这两行代码在我的编辑文本中。有什么最好的方法来解决这个问题?
这是一个稍微精简的xml版本:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true">
<LinearLayout
android:id="@+id/buttons_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:weightSum="5">
<android.support.v7.widget.AppCompatButton
android:id="@+id/generate_button"
android:layout_width="match_parent"
android:layout_height="@dimen/button_height"
android:layout_marginBottom="@dimen/button_margin"
android:layout_marginEnd="0dp"
android:layout_marginLeft="@dimen/button_margin"
android:layout_marginRight="0dp"
android:layout_marginStart="@dimen/button_margin"
android:layout_marginTop="@dimen/button_margin"
android:layout_weight="1"
android:background="@color/buttonColor"
android:elevation="@dimen/button_elevation"
android:foreground="?attr/selectableItemBackground"
android:text="@string/generate"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/generate_button_title_size"
android:textStyle="bold" />
<android.support.v7.widget.AppCompatImageButton
android:id="@+id/copy_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/button_margin"
android:layout_weight="4"
android:adjustViewBounds="true"
android:background="@color/buttonColor"
android:elevation="@dimen/button_elevation"
android:foreground="?attr/selectableItemBackground"
android:padding="@dimen/button_margin"
android:scaleType="fitCenter"
android:src="@drawable/ic_copy"
android:tint="@color/colorPrimary" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/buttons_layout"
android:orientation="vertical"
android:weightSum="10">
<GridLayout
android:id="@+id/grid_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_weight="6"
android:animateLayoutChanges="true">
</GridLayout>
<TextView
android:id="@+id/total_text_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:gravity="center"
android:text="11"
android:textSize="@dimen/toolbar_title_size"
android:textStyle="bold" />
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_weight="2"
android:textColorHint="@color/textColorHint">
<EditText
android:id="@+id/num_rolls_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:hint="@string/number_of_rolls"
android:inputType="number"
android:maxLength="@integer/edit_text_max_length"
android:maxLines="1"
android:text="4"
android:textColor="@color/textColor"
android:textSize="@dimen/edit_text_text_size"/>
</android.support.design.widget.TextInputLayout>
</LinearLayout>
目前第二次点击时的效果如下(键盘覆盖了EditText)...
编辑: 我发现在使用Android 7.0时,键盘可以正常工作。我认为在此之下的版本上键盘无法正常工作。这是最近修复的漏洞还是其他原因导致的呢?
此外,我已经在我的清单文件中的应用程序和活动部分中包含了android:windowSoftInputMode="adjustPan|stateHidden",但似乎并没有解决这个问题。