android - tabhost 或布局将 admob 横幅推到屏幕下方

标签 android xml android-layout android-studio android-fragments

我有一个使用选项卡显示不同内容的应用程序.....选项卡下方有一个永远不会移动的 admob 横幅.....它应该锁定在屏幕底部.... …………

大部分内容都是使用 activity_main.xml 显示的,其中包括使用的 content_main.xml 并且我之前从未遇到过布局问题......一切都很好......

这里的布局应该是这样的...... real layout

我最近添加了一个名为 bpm counter 的新选项卡和 java 文件.... bpm counter 选项卡有自己的布局,不使用 activity_main.xml 或 content_main.xml,而是使用自己的 activity_main2.xml,一切正常,但问题在于......

当我打开应用程序时,一切看起来都很正常,就像页面底部的横幅一样......但是当我单击 bpm 计数器选项卡时,admob 横幅向下移动并移动到屏幕的一半...... ..... 然后,当我尝试返回到任何其他选项卡时,横幅向上移动,我在 admob 横幅下方有一个空白区域

当我访问这里的 bpm 选项卡时,你可以看到横幅向下移动的问题 problem 1

然后当我尝试返回主页或任何其他选项卡时,横幅会向上移动...如下图所示 problem 2

我已经尝试更改 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/

相关文章:

android - 为什么不能从其他类访问arraylist?

android - 如何在其他调用正在运行时以编程方式合并调用(电话 session )

java - 在 android 中本地存储图像的最佳方式是什么?

android - 如何查看/res/layout文件夹中XML文件的图形布局?

android - 有 layout-port 和 layout-land 时是否需要默认布局文件夹?

android - 从 android fb sdk 向 facebook wall 发布消息总是错误

java - Android BottomNavigation和Tabs,第一次点击后 View 消失

scala中的xml属性解析

XML 替换标签的值并添加标签

php - 如何修复此错误 XML 解析错误 : not well-formed