我有一个Android应用程序。我刚刚将示例广告添加到了我的应用中,并且我的EditText上的广告一直存在问题。
当我点击EditText时,屏幕底部的广告会向上移动到键盘上方。
我的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
xmlns:ads="http://schemas.android.com/apk/res-auto"
tools:context="org.alexwebber.frc.strongholdcalculator.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/autonomous"
android:textSize="25sp"
android:textStyle="bold"
android:layout_alignParentStart="true"
android:id="@+id/autoLabel" />
<GridLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:id="@+id/autogrid"
android:layout_below="@+id/autoLabel"
android:layout_alignParentStart="true"
android:layout_marginTop="1dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/defreached"
android:id="@+id/defenseReached"
android:textSize="17sp"
android:layout_row="0"
android:layout_column="0"
android:layout_columnSpan="13" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/defcrossed"
android:textSize="17sp"
android:id="@+id/defcrossed"
android:layout_row="1"
android:layout_column="0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/lowgoal"
android:textSize="17sp"
android:id="@+id/lowgoalauto"
android:layout_row="2"
android:layout_column="0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/highgoal"
android:textSize="17sp"
android:id="@+id/highgoalauto"
android:layout_row="3"
android:layout_column="0" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/autodefreach"
android:textSize="12sp"
android:layout_row="0"
android:layout_column="24"
android:enabled="true"
android:text="@string/total" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/autodefcross"
android:textSize="12sp"
android:enabled="true"
android:text="@string/total"
android:layout_row="1"
android:layout_column="24" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/autolowgoal"
android:enabled="true"
android:text="@string/total"
android:textSize="12sp"
android:layout_row="2"
android:layout_column="24" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/autohighgoal"
android:textSize="12sp"
android:text="@string/total"
android:enabled="true"
android:layout_row="3"
android:layout_column="24" />
</GridLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/teleop"
android:id="@+id/teleopLabel"
android:layout_below="@+id/autogrid"
android:textSize="25sp"
android:textStyle="bold"
android:layout_centerVertical="true"
android:layout_alignParentStart="true"
android:layout_marginTop="0dp" />
<GridLayout
android:layout_width="match_parent"
android:layout_height="175dp"
android:layout_below="@+id/teleopLabel"
android:layout_alignParentStart="true"
android:layout_marginTop="1dp"
android:id="@+id/gridLayout">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/defcrossed"
android:id="@+id/defcrossedtele"
android:textSize="17sp"
android:layout_row="0"
android:layout_column="0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lowgoal"
android:id="@+id/lowgoaltele"
android:textSize="17sp"
android:layout_row="1"
android:layout_column="0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/highgoal"
android:id="@+id/highgoaltele"
android:textSize="17sp"
android:layout_row="2"
android:layout_column="0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/challegedTower"
android:id="@+id/challengestower"
android:textSize="17sp"
android:layout_row="3"
android:layout_column="0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/scaledTower"
android:id="@+id/scaledtowertele"
android:textSize="17sp"
android:layout_row="4"
android:layout_column="0" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/teledefcross"
android:text="@string/total"
android:enabled="true"
android:layout_row="0"
android:textSize="12sp"
android:layout_column="13" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/telelowgoal"
android:text="@string/total"
android:enabled="true"
android:layout_row="1"
android:textSize="12sp"
android:layout_column="13" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/telehighgoal"
android:text="@string/total"
android:enabled="true"
android:layout_row="2"
android:textSize="12sp"
android:layout_column="13" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/telechallengedtower"
android:text="@string/total"
android:enabled="true"
android:layout_row="3"
android:textSize="12sp"
android:layout_column="13" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/telescaledtower"
android:text="@string/total"
android:enabled="true"
android:layout_row="4"
android:textSize="12sp"
android:layout_column="13" />
</GridLayout>
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/gridLayout"
android:id="@+id/rpgrid">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/breach"
android:id="@+id/breach"
android:layout_marginTop="1dp"
android:checked="false"
android:layout_row="0"
android:layout_column="0"
android:layout_below="@+id/gridLayout"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/capture"
android:id="@+id/captured"
android:layout_marginTop="1dp"
android:checked="false"
android:layout_row="0"
android:layout_column="1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/calculate"
android:id="@+id/button"
android:textSize="20sp"
android:layout_row="1"
android:layout_column="0"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="@string/totalscore"
android:textSize="20sp"
android:id="@+id/total"
android:layout_row="1"
android:layout_column="1"
android:layout_gravity="right" />
</GridLayout>
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_alignParentBottom="true"
android:windowSoftInputMode="adjustPan"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
答案 0 :(得分:0)
您是否在清单文件中为adjustResize
设置了windowSoftInputMode
?这将导致您的UI布局在输入方法弹出时调整大小。如果您不想调整大小,请将其删除。
<activity
android:name=".TestActivity"
android:windowSoftInputMode="adjustResize|stateAlwaysHidden"
android:label="@string/app_name" >
</activity>
http://developer.android.com/training/keyboard-input/visibility.html#Respond
答案 1 :(得分:0)
它向上移动并重叠EditText
,因为您设置了alignParentBottom="true"
,因此当键盘显示时,布局父底部是SoftKeyboard
的顶部。
您应该通过添加所有内容above
AdView
并在Manifest中的adjustResize
声明中调用Activity
来获得解决方案。另外,我不确定在android:windowSoftInputMode="adjustPan"
xml小部件中调用AdView
会做些什么......
因此,要处理此行为,请将AdView
放在布局容器的顶部,并为其余内容声明一个子容器:
<RelativeLayout ...>
<AdView
android:id="@+id/adView"
android:layout_alignParentBottom="true"
... />
<RelativeLayout
android:layout_above="@id/adView"
...>
<TextView ...>
<GridLayout ...>
<GridLayout ...>
</RelativeLayout>
</RelativeLayout>
然后,在Manifest.xml中显示键盘时调整布局:
<activity
android:windowSoftInputMode="adjustResize"
... />
这应该按预期工作on similar answer。此外,还有另一种解决方法:动态检测键盘何时显示并使AdView
不可见,反之亦然,但我认为它执行的代码太多而不是解决布局。