alignParentBottom在Fragment with Scroll View中显示在屏幕外



对于那些想要在他们的应用程序中有一个由Fragment布局组成的adView,希望下面能帮助你!

基本上,我最初试图将adView放置在每个片段的布局XML中。这导致adView要么被推出屏幕,要么不能很好地使用相对布局命令(例如alignParentBottom)。

解决方案是将adView移动到用于我的片段的协调器布局之外的主活动布局。然后我在一个相对布局中包装了协调器布局和adView。

这样我就可以完全控制adView并呈现在每个固定在屏幕底部的片段上。

我发现,当我改变你的ScrollView的背景,它画在AdView。你必须在代码中将你的AdView放在ScrollView的下面。这样,它被绘制在ScrollView之后,因此在顶部。

这是你编辑的代码:

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp">
    <!-- Dummy item to prevent EditTextView from receiving focus -->
    <LinearLayout
        android:id="@+id/dummyLayout"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:orientation="horizontal" />
    <!-- Dummy item to prevent EditTextView from receiving focus -->
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="4"
            android:hint="@string/hint"
            android:nextFocusLeft="@id/editText1"
            android:nextFocusUp="@id/editText1"
            android:singleLine="true"/>
        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </LinearLayout>
    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/linearLayout1"/>
    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView4"/>
    <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/button1"
        android:background="@color/colorAccent0"
        android:stretchColumns="*"/>
    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tableLayout1"
        android:layout_above="@+id/adView"
        android:background="@color/colorGray">
        <TableLayout
            android:id="@+id/tableLayout2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:stretchColumns="*"/>
    </ScrollView>
    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
    </com.google.android.gms.ads.AdView>
</RelativeLayout>

相关内容

  • 没有找到相关文章

最新更新