Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么AdMob会弄乱EditText流和键盘?_Android_Keyboard_Admob - Fatal编程技术网

Android 为什么AdMob会弄乱EditText流和键盘?

Android 为什么AdMob会弄乱EditText流和键盘?,android,keyboard,admob,Android,Keyboard,Admob,我正在完成一个Android计算器应用程序,我有两个版本:免费版和完整版。我注意到,在免费版本中,当一个广告显示在屏幕上时,EditText字段的流不会一直到最后一个EditText;这意味着,当用户在虚拟键盘上点击“下一步”时,当下一个字段(我猜)包含在另一个LinearLayout中时,流中断,但如果输入字段位于同一个LinearLayout父项中,则流可以工作。在完整的版本中,没有广告,它工作得完美无缺 此外,当用户位于最后一个字段时,虚拟键盘显示“完成”按钮;在自由版本中,单击此按钮时,

我正在完成一个Android计算器应用程序,我有两个版本:免费版和完整版。我注意到,在免费版本中,当一个广告显示在屏幕上时,EditText字段的流不会一直到最后一个EditText;这意味着,当用户在虚拟键盘上点击“下一步”时,当下一个字段(我猜)包含在另一个LinearLayout中时,流中断,但如果输入字段位于同一个LinearLayout父项中,则流可以工作。在完整的版本中,没有广告,它工作得完美无缺

此外,当用户位于最后一个字段时,虚拟键盘显示“完成”按钮;在自由版本中,单击此按钮时,键盘将从仅数字键盘(
InputType:number
)变为包含所有字母等的完整键盘。。。而且不会消失。但是,在没有admob的完整版本上,键盘会像人们想象的那样消失

我不知道admob的位置是否重要,但这基本上就是标记:

<LinearLayout>

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

    <LinearLayout>
        The ad from AdMob
    </LinearLayout>

</LinearLayout>

计算器在这里
AdMob的广告

我希望这是清楚的。我是Android开发者的新手,不知道如何处理这个非常具体的行为。

好的,所以我想出了一个解决方案,我所要做的就是为每个输入字段明确定义
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会干扰输入流,但幸运的是,我找到了一个解决方案。不管怎样,通常最好定义这些值,这样就好了