浮动Activity中的EditText在键入时不会立即更新

时间:2015-10-09 07:46:24

标签: android-edittext android-softkeyboard

我有一个活动(不管是Act.A),它开始了另一个活动(不管是Act.B),它浮在Act.A之上,设置了以下样式:

在Act.B的onCreate(savedInstanceState)中:

requestWindowFeature(Window.FEATURE_NO_TITLE);

在styles.xml中:

<style name="Theme.AppCompat.Light.NoTitle" parent="@style/Theme.AppCompat.Light">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">false</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:backgroundDimEnabled">true</item>
</style>

在Act.B中,有一个包含EditText的片段。在片段的onActivityCreated中,我使用以下代码行显示软键盘:

edittext.requestFocus();
InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(edittext, 0);

这是我的EditText

的xml
            <EditText
                android:id="@+id/phone_number"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@null"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:fontFamily="fonts/avenir-light.ttf"
                android:hint="@string/sms_send_code_number_hint"
                android:imeOptions="actionDone"
                android:inputType="phone"
                android:maxLines="1"
                android:padding="5dp"
                android:singleLine="true"
                android:textColorHint="@color/sms_verification_edittext_grey"
                android:textSize="16sp" />

显示软键盘,光标位于edittext内。然而,在按下软键盘上的按键时,edittext不会立即更新。只有在我按下后退按钮关闭软键盘后,才能使用正确的文本更新edittext。

我还注意到,当显示键盘时,片段中的其他UI不会立即更新。然而,当我关闭软键盘时,UI会更新。

任何提示都将受到高度赞赏。 thx提前。

1 个答案:

答案 0 :(得分:0)

经过进一步调查,我发现它与上述代码无关。

问题是由于自定义linearLayout用于自定义包含edittext的边缘周围的圆角。因此,在我实现了另一种绘制圆角的方法之后,它工作正常。