UnifiedNativeReadView的Admob本机广告在Kotlin中不可单击

UnifiedNativeReadView的Admob本机广告在Kotlin中不可单击,kotlin,admob,native-ads,unifiednativeadview,Kotlin,Admob,Native Ads,Unifiednativeadview,我在admob原生广告中遇到了一个奇怪的错误。除了我在回调时找不到广告的url值,并且UnifiedNativeReadView不可单击之外,一切都正常,即使里面的按钮在我使用admob模板时也不会出现 以下是XML视图代码: <com.google.android.gms.ads.formats.UnifiedNativeAdView android:paddingTop="8dp" android:la

我在admob原生广告中遇到了一个奇怪的错误。除了我在回调时找不到广告的url值,并且UnifiedNativeReadView不可单击之外,一切都正常,即使里面的按钮在我使用admob模板时也不会出现

以下是XML视图代码:

            <com.google.android.gms.ads.formats.UnifiedNativeAdView
               android:paddingTop="8dp"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:id="@+id/native_ad_view"
               android:background="#000000"
               android:elevation="20dp">

                 <LinearLayout
                    android:id="@+id/native_ad_layout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:orientation="vertical">

                           <TextView
                             style="@style/AdAttribution"
                             android:id="@+id/native_ad_attribution"
                             android:visibility="gone"/>

                           <LinearLayout
                              android:id="@+id/native_ad_inside_layout"
                              android:layout_width="match_parent"
                              android:layout_height="0dp"
                              android:layout_gravity="center"
                              android:layout_weight="1"
                              android:orientation="horizontal"
                              android:visibility="gone">

                                  <ImageView
                                     android:id="@+id/ad_app_icon"
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                                     android:layout_gravity="center"
                                     android:adjustViewBounds="true"
                                     android:maxWidth="85dp"
                                     android:scaleType="centerCrop" />

                                  <TextView
                                     android:id="@+id/ad_headline"
                                     android:layout_width="0dp"
                                     android:layout_height="wrap_content"
                                     android:layout_gravity="center"
                                     android:layout_weight="1"
                                     android:maxLines="3"
                                     android:paddingLeft="5dp"
                                     android:paddingRight="5dp"
                                     android:textSize="16sp"
                                     android:textStyle="bold" />

                                  <Button
                                     android:id="@+id/ad_call_to_action"
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                                     android:layout_gravity="center"
                                     android:gravity="center"
                                     android:maxWidth="50dp"
                                     android:maxLines="3"
                                     android:textSize="12sp"
                                   />
                           </LinearLayout>

                  </LinearLayout>

            </com.google.android.gms.ads.formats.UnifiedNativeAdView>
onBindViewHolder的代码:

这就是我叫adLoader的地方。我使用BroadcastReceiver在后台调用它:

正如我提到的,广告效果很好,但不可点击。我不确定这是来自admob的bug,还是我的代码或者我丢失的东西。我认为其他开发者将来也会面临同样的问题,所以最好解决它。
提前谢谢。

由于缺乏详细的文档和示例,我发现我缺少一行代码。许多其他示例也没有这一行。我只在onBindViewHolder中添加了一行

由此:

if (item.nativeAd!!.callToAction == null) {
    holder.callToActionView.visibility = View.INVISIBLE
} else {
    holder.callToActionView.visibility = View.VISIBLE
    (holder.callToActionView as Button).text = item.nativeAd!!.callToAction
}
为此:

if (item.nativeAd!!.callToAction == null) {
    holder.callToActionView.visibility = View.INVISIBLE
} else {
    holder.callToActionView.visibility = View.VISIBLE
    (holder.callToActionView as Button).text = item.nativeAd!!.callToAction
    holder.adView.callToActionView = (holder.callToActionView as Button)
}

这意味着我需要将我的按钮附加为callToActionView,因此由于缺乏详细的文档和示例,我发现缺少一行代码。许多其他示例也没有这一行。我只在onBindViewHolder中添加了一行

由此:

if (item.nativeAd!!.callToAction == null) {
    holder.callToActionView.visibility = View.INVISIBLE
} else {
    holder.callToActionView.visibility = View.VISIBLE
    (holder.callToActionView as Button).text = item.nativeAd!!.callToAction
}
为此:

if (item.nativeAd!!.callToAction == null) {
    holder.callToActionView.visibility = View.INVISIBLE
} else {
    holder.callToActionView.visibility = View.VISIBLE
    (holder.callToActionView as Button).text = item.nativeAd!!.callToAction
    holder.adView.callToActionView = (holder.callToActionView as Button)
}
这意味着我需要将我的按钮附加为callToActionView

if (item.nativeAd!!.callToAction == null) {
    holder.callToActionView.visibility = View.INVISIBLE
} else {
    holder.callToActionView.visibility = View.VISIBLE
    (holder.callToActionView as Button).text = item.nativeAd!!.callToAction
    holder.adView.callToActionView = (holder.callToActionView as Button)
}