滑动viewpager android时,软键盘不会自动显示

时间:2017-01-24 03:28:13

标签: android fragment

我有一个有2页的viewpager。在第2页,我有6个Editexts来输入文本。当我切换到第2页时,我想显示sortkeyboard。我尝试了很多解决方案,但它对我没用。

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:background="@color/background_splash"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imgLogo"
        android:layout_width="@dimen/logo_height_primary"
        android:scaleType="centerInside"
        android:layout_height="@dimen/logo_height_primary"
        android:layout_marginTop="20dp"
        android:layout_gravity="center"
        android:src="@mipmap/ic_logo" />

    <TextView
        android:id="@+id/tvHint"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        android:text="@string/tip_enter_otp"
        android:textColor="#222222"
        android:textSize="14sp" />

    <LinearLayout
        android:id="@+id/lnOtp"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_gravity="center"
        android:layout_marginTop="8dp"
        android:orientation="horizontal">

        <Editext
            android:id="@+id/edtOTP1"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:gravity="center"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP2"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP3"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP4"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP5"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP6"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />
    </LinearLayout>

</LinearLayout>

谢谢你们

3 个答案:

答案 0 :(得分:0)

添加此代码以打开键盘。您可以在onTabSelected方法

中添加此代码
 InputMethodManager inputMethodManager =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
   inputMethodManager.toggleSoftInputFromWindow(
linearLayout.getApplicationWindowToken(),
InputMethodManager.SHOW_FORCED, 0);

答案 1 :(得分:0)

在XML文件的布局标记中使用此属性:

android:focusable="true"
android:focusableInTouchMode="true"

它不适用于ScrollView,因此您需要将这些属性添加到ScrollView的主子级。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:background="@color/background_splash"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imgLogo"
        android:layout_width="@dimen/logo_height_primary"
        android:scaleType="centerInside"
        android:layout_height="@dimen/logo_height_primary"
        android:layout_marginTop="20dp"
        android:layout_gravity="center"
        android:src="@mipmap/ic_logo" />

    <TextView
        android:id="@+id/tvHint"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        android:text="@string/tip_enter_otp"
        android:textColor="#222222"
        android:textSize="14sp" />

    <LinearLayout
        android:id="@+id/lnOtp"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_gravity="center"
        android:layout_marginTop="8dp"
        android:orientation="horizontal">

        <Editext
            android:id="@+id/edtOTP1"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:gravity="center"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP2"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP3"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP4"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP5"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />

        <Editext
            android:id="@+id/edtOTP6"
            android:layout_width="@dimen/edt_otp_layout_width"
            android:layout_height="match_parent"
            android:textSize="@dimen/text_otp_size"
            android:padding="@dimen/text_otp_padding"
            android:background="@drawable/background_textbox_otp"
            android:inputType="numberDecimal"
            android:maxLength="1"
            android:textAlignment="center"
            android:textColor="@android:color/black" />
    </LinearLayout>

</LinearLayout>

答案 2 :(得分:0)

在清单中的活动中尝试 windowSoftInputMode ,如下所示

<activity
         android:name=".YourActivity"
         android:windowSoftInputMode="stateVisible|adjustResize"></activity>