附在底部的AdView不允许我查看Recyclerview中的最后一项

时间:2016-06-30 18:44:12

标签: android android-layout admob android-recyclerview

我有一个android:layout_alignParentRight="true"我有一个<ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/palm" android:scaleType="centerCrop"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Title" android:textSize="40dp" android:textColor="@android:color/white" android:layout_centerInParent="true"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginRight="30dp" android:layout_marginBottom="20dp"/> RelativeLayout里面有一个RecyclerViewLinearLayout有很多项目,当我无法在屏幕上显示它们时,我只需向下滚动查看它们,但现在我添加了AdView附加到屏幕底部的我向内滚动RecyclerView,我无法看到LinearLayout的最后一项。我将AdView附加到底部,但似乎它位于RecyclerView之上,我希望LinearLayout在屏幕上显示项目,但不会在RecyclerView。有可能吗?

这是我的布局XML:

RecyclerView

2 个答案:

答案 0 :(得分:4)

相对布局需要&#34;相对&#34; XML中定义的关系。由于你没有(除了在底部对齐线性布局),结果是LL和RecyclerView重叠。

添加行android:layout_below =&#34; @ id / rvGeneric&#34;到线性布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:ads="http://schemas.android.com/apk/res-auto">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/ll_ad"
        android:layout_alignParentBottom="true"
        android:gravity="center">

        <com.google.android.gms.ads.AdView
             android:id="@+id/adViewBaseRefresh"
             android:layout_width="fill_parent"
             android:layout_height="53dp"
             ads:adSize="BANNER"
             ads:adUnitId="@string/banner_ad_unit_id"
             android:layout_marginBottom="3dp">
        </com.google.android.gms.ads.AdView>

    </LinearLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rvGeneric"
        android:layout_above="@id/ll_ad"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical"/>

</RelativeLayout>

答案 1 :(得分:0)

为此,我个人使用如下的LinearLayout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    tools:context="com.example.geoff.stackoverflowtesting.MainActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/rvGeneric"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="TESTING2"
                android:background="#FFF000"
                android:textSize="200dp"
                android:scrollbars="vertical">
            </TextView>
        </LinearLayout>
    </ScrollView>
    <TextView
        android:id="@+id/adViewBaseRefresh"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TESTING"
        android:textSize="30dp"
        android:textColor="#FFF000"
        android:background="#000000"
        android:layout_marginBottom="3dp"
        android:layout_weight="0.1">
    </TextView>
</LinearLayout>

如果您特别想使用RelativeLayout,那么:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    tools:context="com.gfaiers.layoutexamples.MainActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <android.support.v7.widget.RecyclerView
                android:id="@+id/rvGeneric"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scrollbars="vertical">
            </android.support.v7.widget.RecyclerView>
        </LinearLayout>
    </ScrollView>
    <com.google.android.gms.ads.AdView
        android:id="@+id/adViewBaseRefresh"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id"
        android:layout_marginBottom="3dp">
    </com.google.android.gms.ads.AdView>
</RelativeLayout>