1

私はViewPagerを持っていて、EditTextフィールドを含むページのカップルです。タスクは、最初にEditText(電話番号)のページでソフトキーボードを開き、完了ボタンをクリックして別のページに移動し、第2のEditText(認証コード)にフォーカスを設定した後に開きます。キーボードは常に開かなければならず、EditTextのフィールドが上になければなりません。 2ページ目にはカバーされました。ViewPagerのソフトキーボード

<android.support.percent.PercentFrameLayout 
    android:id="@+id/verification" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.AppCompatImageView 
     android:id="@+id/superup_logo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     app:layout_marginTopPercent="33%" 
     app:layout_widthPercent="65%" 
     app:srcCompat="@drawable/animated_superup_logo_white"/> 

    <superup.onboarding.NonSwipeableViewPager 
     android:id="@+id/verifyPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/transition"> 

     <android.support.percent.PercentRelativeLayout 
      android:id="@+id/layout_start" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 

      <android.support.v7.widget.AppCompatImageView 
       android:id="@+id/superup_name" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       app:layout_marginTopPercent="67%" 
       app:layout_widthPercent="50%" 
       app:srcCompat="@drawable/superup_name"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/superup_name" 
       android:layout_centerHorizontal="true" 
       android:text="@string/layout_start_text" 
       android:textColor="@color/white" 
       android:textSize="18dp" 
       android:textStyle="bold"/> 

     </android.support.percent.PercentRelativeLayout> 

     <android.support.percent.PercentRelativeLayout 
      android:id="@+id/layout_number" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layoutDirection="ltr"> 

      <TextView 
       android:id="@+id/txt_number" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:gravity="center" 
       android:text="@string/layout_number_text" 
       android:textColor="@color/white" 
       android:textSize="18dp" 
       android:textStyle="bold" 
       app:layout_marginTopPercent="3%"/> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:layout_centerHorizontal="true" 
       android:gravity="center" 
       app:layout_marginBottomPercent="23%" 
       app:layout_widthPercent="75%"> 

       <superup.onboarding.CountryCodePicker 
        android:id="@+id/country_code" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        app:contentColor="@color/white" 
        app:countryPreference="IL" 
        app:defaultNameCode="IL" 
        app:hideNameCode="true" 
        app:textSize="24sp"/> 

       <EditText 
        android:id="@+id/et_number" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:digits="1234567890" 
        android:gravity="center" 
        android:imeOptions="actionDone" 
        android:inputType="number" 
        android:maxLength="10" 
        android:textColor="@color/white" 
        android:textSize="24sp"/> 
      </LinearLayout> 

     </android.support.percent.PercentRelativeLayout> 

     <android.support.percent.PercentRelativeLayout 
      android:id="@+id/layout_otp" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <superup.onboarding.PinEntryEditText 
       android:id="@+id/et_code" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:cursorVisible="false" 
       android:digits="1234567890" 
       android:imeOptions="actionDone" 
       android:inputType="number" 
       android:maxLength="4" 
       android:textIsSelectable="false" 
       android:textSize="50dp" 
       android:textStyle="bold" 
       app:layout_marginBottomPercent="23%" 
       app:layout_marginLeftPercent="20%" 
       app:layout_marginRightPercent="20%"/> 

      <TextView 
       android:id="@+id/txt_wrong" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/et_code" 
       android:layout_centerHorizontal="true" 
       android:padding="10dp" 
       android:text="@string/wrong_number" 
       android:textColor="@color/white" 
       android:textSize="16dp" 
       android:textStyle="bold"/> 

      <TextView 
       android:id="@+id/txt_phone" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/txt_wrong" 
       android:layout_centerHorizontal="true" 
       android:layoutDirection="ltr" 
       android:textColor="@color/white" 
       android:textSize="20dp" 
       android:textStyle="bold"/> 

     </android.support.percent.PercentRelativeLayout> 

    </superup.onboarding.NonSwipeableViewPager> 

</android.support.percent.PercentFrameLayout> 

ページスワイプでは完全に機能しますが、キーボードでページを切り替える必要があります。 verifyPager.setCurrentItemでページを変更した後、EditTextはキーボードで覆われています。

et_number.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) { 
      switch (actionId) { 
       case EditorInfo.IME_ACTION_DONE: 
        verifyPager.setCurrentItem(verifyPager.getChildCount() - 1); 
        return true; 
       default: 
        return false; 
      } 
     } 
    }); 

Android 6搭載のSamsungには、Nexus 5X/6P/Asusにはこのバグはありません。

答えて

1

私はこれはあなたのFirst EditText

<EditText 
        android:id="@+id/et_number" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:digits="1234567890" 
        android:gravity="center" 
        android:imeOptions="actionDone" 
        android:inputType="number" 
        android:maxLength="10" 
        android:textColor="@color/white" 
        android:textSize="24sp"/> 

を考えると、これは単なる方法以下のようなid of Second to First oneを与えるSecond

<superup.onboarding.PinEntryEditText 
       android:id="@+id/et_code" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:cursorVisible="false" 
       android:digits="1234567890" 
       android:imeOptions="actionDone" 
       android:inputType="number" 
       android:maxLength="4" 
       android:textIsSelectable="false" 
       android:textSize="50dp" 
       android:textStyle="bold" 
       app:layout_marginBottomPercent="23%" 
       app:layout_marginLeftPercent="20%" 
       app:layout_marginRightPercent="20%"/> 

です。

android:nextFocusDown="@+id/et_code" 

上記のコードをFirst EditTextに記述してください。

+0

はい、そうです。残念ながら、それは動作しません。 –

関連する問題