我有一个使用选项卡显示不同内容的应用程序.....选项卡下方有一个永远不会移动的 admob 横幅.....它应该锁定在屏幕底部.... …………
大部分内容都是使用 activity_main.xml 显示的,其中包括使用的 content_main.xml 并且我之前从未遇到过布局问题......一切都很好......
我最近添加了一个名为 bpm counter 的新选项卡和 java 文件.... bpm counter 选项卡有自己的布局,不使用 activity_main.xml 或 content_main.xml,而是使用自己的 activity_main2.xml,一切正常,但问题在于......
当我打开应用程序时,一切看起来都很正常,就像页面底部的横幅一样......但是当我单击 bpm 计数器选项卡时,admob 横幅向下移动并移动到屏幕的一半...... ..... 然后,当我尝试返回到任何其他选项卡时,横幅向上移动,我在 admob 横幅下方有一个空白区域
当我访问这里的 bpm 选项卡时,你可以看到横幅向下移动的问题
然后当我尝试返回主页或任何其他选项卡时,横幅会向上移动...如下图所示
我已经尝试更改 match_parent 和 fill_parent 并尝试在布局中进行很多调整,但我无法弄清楚我做错了什么,我正要把我的头撞到墙上....任何帮助都会是精彩和赞赏!
这是我的 .xml 布局文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.raptools.app.raptools.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>
这是我的 content_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:screenOrientation="portrait"
android:background="#000000"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.raptools.app.raptools.MainActivity"
tools:showIn="@layout/activity_main">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="0dp"
android:layout_height="0dp"
android:screenOrientation="portrait"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-4075500144464557/8371434413"/>
<WebView
android:id="@+id/activity_main_webview"
android:layout_width="match_parent"
android:screenOrientation="portrait"
android:layout_height="match_parent"
android:layout_above="@id/adView" />
<ImageView
android:id="@+id/homepageimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:src="@drawable/homepageimage"
android:layout_above="@id/adView"
/>
<ImageView
android:id="@+id/comingimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:src="@drawable/comingsoon"
android:layout_above="@id/adView" />
</RelativeLayout>
这两个布局文件工作正常,直到我尝试添加新的 bpm 计数器选项卡......
这里是用于bpm计数器java的activity_main2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fitsSystemWindows="true"
tools:context="com.raptools.app.raptools.MainActivity"
android:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:textColor="@color/ColorRemoveAds"
app:itemIconTint="@color/ColorRemoveAds"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</android.support.design.widget.AppBarLayout>
<RelativeLayout
android:id="@+id/appView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/transitioning_background"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".BpmCounter">
<TextView
android:id="@+id/bpmLabelTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="@string/bpm"
android:textColor="@color/textColor"
android:textSize="40sp"/>
<TextView
android:id="@+id/bpmTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/bpmLabelTextView"
android:layout_centerHorizontal="true"
android:text="@string/initial_bpm_value"
android:textColor="@color/textColor"
android:textSize="70sp"/>
<Button
android:id="@+id/tapButtonView"
android:layout_width="100dp"
android:layout_height="80dp"
android:layout_above="@+id/instructionalLabelTextView"
android:layout_centerHorizontal="true"
android:layout_marginBottom="32dp"
android:background="@drawable/round_button"
android:text="@string/tap"
android:textColor="@color/textColor"
android:textSize="30sp"/>
<TextView
android:id="@+id/instructionalLabelTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="28dp"
android:text="@string/reset_instructions"
android:textColor="@color/textColor"/>
</RelativeLayout>
</LinearLayout>
我希望我已经解释得足够详细,任何帮助都会很棒!
最佳答案
我最终盯着上面发布的三个代码看了很长时间,并决定从 activity_main.xml 复制框架并将其粘贴到 activity_main2.xml 中并删除线性布局并确保包含 android.support.design .widget.CoordinatorLayout,我设法让它工作了!
这是工作代码,以防任何人遇到这个问题
activity_main2.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.raptools.app.raptools.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<RelativeLayout
android:id="@+id/appView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:screenOrientation="portrait"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_weight="1"
android:background="@drawable/transitioning_background"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".BpmCounter">
<TextView
android:id="@+id/bpmLabelTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="@string/bpm"
android:textColor="@color/textColor"
android:textSize="40sp"/>
<TextView
android:id="@+id/bpmTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/bpmLabelTextView"
android:layout_centerHorizontal="true"
android:text="@string/initial_bpm_value"
android:textColor="@color/textColor"
android:textSize="70sp"/>
<Button
android:id="@+id/tapButtonView"
android:layout_width="100dp"
android:layout_height="80dp"
android:layout_above="@+id/instructionalLabelTextView"
android:layout_centerHorizontal="true"
android:layout_marginBottom="32dp"
android:background="@drawable/round_button"
android:text="@string/tap"
android:textColor="@color/textColor"
android:textSize="30sp"/>
<TextView
android:id="@+id/instructionalLabelTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="28dp"
android:text="@string/reset_instructions"
android:textColor="@color/textColor"/>
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>
关于android - tabhost 或布局将 admob 横幅推到屏幕下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41797523/