EditText表现得很奇怪

时间:2017-12-26 18:45:11

标签: android android-edittext

在我的片段中,我有两个editTexts(下面给出的xml)。当片段显示在屏幕上时,当我触摸第一个编辑文本时,软键盘不可见,我必须首先触摸第二个编辑文本,使键盘可见,然后我才能输入第一个编辑文本。

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="vertical">

        <ImageView
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_gravity="center_horizontal"
            android:src="@drawable/male" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:gravity="center_horizontal"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="8dp"
                android:src="@drawable/tel" />

            <EditText
                android:id="@+id/dad_phone_edt"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="16dp"
                android:backgroundTint="#ffffff"
                android:fontFamily="@font/sansation_regular"
                android:inputType="phone"
                android:textColor="#ffffff" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:gravity="center_horizontal"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="8dp"
                android:src="@drawable/skype" />

            <EditText
                android:id="@+id/dad_skype_edt"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="16dp"
                android:backgroundTint="#ffffff"
                android:fontFamily="@font/sansation_regular"
                android:inputType="textPersonName"
                android:textColor="#ffffff" />
        </LinearLayout>

1 个答案:

答案 0 :(得分:0)

这是建立它的一种方式

EditText editText= (EditText) fragmentView.findViewById(R.id.dad_phone_edt);
editText.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
                                imm.toggleSoftInput(InputMethodManager.RESULT_SHOWN,0);
                            }
                        });

单击editText时强制键盘显示

您可以对dad_skype_edt

执行相同的操作

隐藏键盘按下,

如果要在触摸布局的任何位置时隐藏它,请添加此代码

your_parent_view.setOnTouchListener(new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {

                        View view = activity.getCurrentFocus();
                        if (view != null) {
                        InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
                        }
                        return false;
                    }
                });