Android RecyclerView 与 AdView - AdMob 最佳实践
Android RecyclerView with AdView- best practices AdMob
我正在完成我的第一个移动应用程序,我想在视图底部添加一些 AdView。我阅读了 AdMob 政策,但我仍然不确定这种广告展示方式是否正确。我在底部有一个回收视图和广告。用户正在向下滚动,但广告仍然可见,在视图的末尾,我添加了额外的 50dp 填充以使广告与最后一项相匹配,因此它不会覆盖它。 RecyclerView 项目不可点击,因此不会误点击广告。这是一个好方法还是我必须改变它?截图以获得更好的解释。
recyclerview
last item in recyclerview
您确保您的广告不会与使用 LinearLayouts 和 layout_weight 类似内容的内容重叠。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/backgroundColor"
android:orientation="vertical"
android:layout_weight="1"
android:fitsSystemWindows="true">
<include layout="@layout/detail_activity_bar"></include>
<SomeView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/home_grid"
android:layout_weight="0.9"
android:layout_width="match_parent"
android:layout_height="0dp"/>
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adViewGallery"
android:layout_weight="0.1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center"
ads:adSize="BANNER"
ads:adUnitId="@string/home_banner">
</com.google.android.gms.ads.AdView>
</LinearLayout>
adSize BANNER 适合大多数设备,而根据我的经验,SMART_BANNER 确实与大屏幕手机重叠。
通过上述实施,您将永远不会违反 admob 横幅政策
请看一下 MergedAdapter
(仍处于 alpha 阶段)。它可能会解决您的问题。
感谢您的回复,我的适配器是这样的
<androidx.coordinatorlayout.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"
tools:context=".BenefitsActivity">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar_benefits"
app:layout_scrollFlags="scroll|enterAlways"
android:layout_width="match_parent"
android:background="#109689"
android:layout_height="?attr/actionBarSize">
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:isScrollContainer="true"
android:measureAllChildren="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="50dp"
android:clipToPadding="false"
android:background="@color/grey_background"
android:id="@+id/benefits_recycler"/>
</androidx.core.widget.NestedScrollView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-2503474669022915/4441412233">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
我正在完成我的第一个移动应用程序,我想在视图底部添加一些 AdView。我阅读了 AdMob 政策,但我仍然不确定这种广告展示方式是否正确。我在底部有一个回收视图和广告。用户正在向下滚动,但广告仍然可见,在视图的末尾,我添加了额外的 50dp 填充以使广告与最后一项相匹配,因此它不会覆盖它。 RecyclerView 项目不可点击,因此不会误点击广告。这是一个好方法还是我必须改变它?截图以获得更好的解释。
recyclerview
last item in recyclerview
您确保您的广告不会与使用 LinearLayouts 和 layout_weight 类似内容的内容重叠。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/backgroundColor"
android:orientation="vertical"
android:layout_weight="1"
android:fitsSystemWindows="true">
<include layout="@layout/detail_activity_bar"></include>
<SomeView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/home_grid"
android:layout_weight="0.9"
android:layout_width="match_parent"
android:layout_height="0dp"/>
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adViewGallery"
android:layout_weight="0.1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center"
ads:adSize="BANNER"
ads:adUnitId="@string/home_banner">
</com.google.android.gms.ads.AdView>
</LinearLayout>
adSize BANNER 适合大多数设备,而根据我的经验,SMART_BANNER 确实与大屏幕手机重叠。
通过上述实施,您将永远不会违反 admob 横幅政策
请看一下 MergedAdapter
(仍处于 alpha 阶段)。它可能会解决您的问题。
感谢您的回复,我的适配器是这样的
<androidx.coordinatorlayout.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"
tools:context=".BenefitsActivity">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar_benefits"
app:layout_scrollFlags="scroll|enterAlways"
android:layout_width="match_parent"
android:background="#109689"
android:layout_height="?attr/actionBarSize">
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:isScrollContainer="true"
android:measureAllChildren="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="50dp"
android:clipToPadding="false"
android:background="@color/grey_background"
android:id="@+id/benefits_recycler"/>
</androidx.core.widget.NestedScrollView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-2503474669022915/4441412233">
</com.google.android.gms.ads.AdView>
</RelativeLayout>