软输入键盘未隐藏在edittext上

时间:2018-01-22 09:37:51

标签: java android android-fragments android-edittext keyboard

我创建了一个项目,其中有一个扩展片段的类,其中框架布局包含两个编辑文本。这里的问题是每当我点击/触摸任何编辑文本时,我不想弹出的软输入键盘弹出窗口。我尝试了以下方法来禁用软输入键盘。

androidmanifest.xml文件中,我还使用了属性android:windowSoftInputMode="stateHidden"

public class Convert extends Fragment{ 

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        final ViewGroup viewGroup = (ViewGroup) inflater.inflate(R.layout.converter_data_layout, container, false);

        screen_v1 = (EditText) viewGroup.findViewById(R.id.data_value1);
        screen_v2 = (EditText) viewGroup.findViewById(R.id.data_value2);

        screen_v1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean b) {
                hideKeyboard(getContext());
            }
        });

        screen_v2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean b) {
                  hideKeyboard(getContext());
            }
        });

        return viewGroup;
    }

    public void hideKeyboard(Context context){
        InputMethodManager inputMethodManager = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
        View view = ((Activity)context).getCurrentFocus();
        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
}

我的xml文件代码

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="rahuldadoriya.mathsolver.convert.Convert"
    android:id="@+id/frame_data">
    <EditText
        android:maxLength="15"
        android:id="@+id/data_value1"
        style="@style/EdittextStyle"
        android:layout_weight="2.8"
        android:gravity="right"
        android:paddingRight="15dp"
        android:paddingTop="25dp"
        android:inputType="numberDecimal"
        android:clickable="true"/>

    <EditText
        android:maxLength="15"
        android:id="@+id/data_value2"
        style="@style/EdittextStyle"
        android:layout_weight="2.8"
        android:gravity="right"
        android:paddingRight="15dp"
        android:paddingTop="25dp"
        android:inputType="numberDecimal"
        android:clickable="true"/>
</FrameLayout>

提前致谢。

1 个答案:

答案 0 :(得分:1)

感谢您的帮助,我已经解决了我的问题,但对解决方案并不完全满意,因为我用于没有弹出软输入键盘的是为编辑文本设置setInputType(0),即

screen_v1.setInputType(0);

类似于其他edittext但这里的问题是在edittext上使用上述方法之后,在任何一个edittext上都看不到光标。 所以,如果任何人有任何理由发生这种情况,请帮助我。

由于