2017-11-12 1 views
1

Android 계산기 앱을 마무리하고 있는데 두 가지 버전이 있습니다 : 무료 및 전체 버전입니다. 광고가 화면에 표시 될 때 무료 버전에서는 EditText 필드의 흐름이 마지막 EditText까지 진행되지 않는다는 것을 알았습니다. 사용자가 가상 ​​키보드에서 "NEXT"를 누를 때 다음 필드가 다른 LinearLayout에 묶여있을 때 흐름이 중단되지만 입력 필드가 동일한 LinearLayout 부모에있는 경우 작동합니다. 가득 차있는 버전에서, 광고없이, 그것은 완벽하게 작동합니다.EditText 흐름 및 키보드에서 AdMob이 엉망인 이유는 무엇입니까?

또한 사용자가 마지막 필드에있을 때 가상 키보드에 "완료"버튼이 표시됩니다. 무료 버전에서이 버튼을 클릭하면 키보드는 숫자 전용 키보드 (InputType:number)에서 전체 글자와 함께 전체 키보드로 이동하며 사라지지 않습니다. 그러나, admob가없는 정식 버전에서는 키보드가 사라지는 것처럼 보입니다. 나는 이것이 분명 희망

<LinearLayout> 

    <LinearLayout> 
     <calculator_labels_and_fields> 
      Calculator goes here 
     </calculator_labels_and_fields> 
    </LinearLayout> 

    <LinearLayout> 
     The ad from AdMob 
    </LinearLayout> 

</LinearLayout> 

:하여 몹 문제의 위치, 그러나 이것은 기본적으로 마크 업의 경우

나도 몰라. 나는 안드로이드 dev에 새로운 오전이 특정 행동에 접근하는 방법을 잘 모르겠습니다.

답변

0

자, 해결책을 알아 냈으므로 각 입력 필드에 대해 nextFocusDown을 명시 적으로 정의하고 마지막 입력 필드에 imeOptions="actionDone"을 정의했습니다. 다음은 간단한 예입니다.

<EditText 
    android:id="@+id/et_field_1" 
    android:inputType="numberDecimal" 
    android:nextFocusDown="@id/et_field_2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

<EditText 
    android:id="@+id/et_field_2" 
    android:inputType="numberDecimal" 
    android:nextFocusDown="@id/et_field_3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

<EditText 
    android:id="@+id/et_field_3" 
    android:inputType="numberDecimal" 
    android:imeOptions="actionDone" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

AdMob이 입력 흐름을 망쳐 놓은 이유는 아직도 알지 못하지만 다행스럽게도 해결책을 찾았습니다. 어쨌든이 값을 정의하는 것이 일반적으로 더 좋으므로 모든 것이 좋습니다.

관련 문제