我的ScrollView
包含Textview
,Imageview
,Webview
以及PublisherAdView
底部的粘性RelativeLayout
我的ScrollView
和PublisherAdView
。
默认情况下,我的广告的展示效果为GONE
,但广告加载后,我将PublisherAdView
的展示次数更改为VISIBLE
。
问题是,当我更改可见性时,我的ScrollView
自动滚动到某个位置,我不希望这样。
我该如何解决这个问题?
这是我的布局
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@color/windowBackground">
<LinearLayout
android:layout_above="@+id/ad_view_sticky"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@color/windowBackground"
android:orientation="vertical">
<LinearLayout
android:id="@+id/container_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
</LinearLayout>
<ScrollView
android:id="@+id/scroller"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:id="@+id/news_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/windowBackground"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/main_text_color"
android:textSize="24sp"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp" />
<TextView
android:id="@+id/spot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/main_text_color"
android:layout_marginBottom="5dp"
android:textSize="16sp"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/relativeLayout">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="visible"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="40dp"
android:layout_marginBottom="40dp"/>
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/descr_image"
android:src="@drawable/resimsiz"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:background="#80000000">
<TextView
android:id="@+id/category"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/secondary_text_color"
android:textSize="14sp"
android:textStyle="bold"
android:layout_marginStart="3dp"
android:layout_marginLeft="3dp"
android:layout_marginBottom="3dp"
android:layout_marginTop="3dp" />
<TextView
android:id="@+id/date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
android:textColor="@color/secondary_text_color"
android:textSize="14sp"
android:textStyle="bold"
android:layout_marginEnd="3dp"
android:layout_marginRight="3dp"
android:layout_marginBottom="3dp"
android:layout_marginTop="3dp" />
</LinearLayout>
</RelativeLayout>
<com.google.android.gms.ads.doubleclick.PublisherAdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/ad_news_detail_sticky"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:visibility="gone"/>
<WebView
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="WebViewLayout"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"/>
<TextView
android:id="@+id/tv_related_contents"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/tv_related_contents"
android:visibility="gone"
android:padding="10dp"
android:textSize="16sp" />
</LinearLayout>
</ScrollView>
</LinearLayout>
<com.google.android.gms.ads.doubleclick.PublisherAdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@id/ad_view_sticky"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/ad_news_detail_sticky"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:layout_centerInParent="true"
android:visibility="gone"/>
</RelativeLayout>
我的代码部分是
mAdView.setAdListener(new AdListener(){
PublisherAdView mAdView = (PublisherAdView) findViewById(R.id.ad_view_sticky);
@Override
public void onAdLoaded() {
super.onAdLoaded();
mAdView.setVisibility(View.VISIBLE);
}
});
答案 0 :(得分:14)
实际上将android:descendantFocusability="blocksDescendants"
添加到我的根RelativeLayout
解决了这个问题
谢谢你的帮助
答案 1 :(得分:0)
你不需要做GONE - &gt; VISIBLE东西,AdMob SDK为您处理。
对于不受欢迎的滚动,请尝试将广告视图放在滚动视图之外。
答案 2 :(得分:0)
将您的广告加入LinearLayout
固定高度50dp
。请尝试以下方法:
<LinearLayout
android:layout_above="@+id/ad_view_sticky"
android:layout_width="match_parent"
android:layout_height="50dp">
<com.google.android.gms.ads.doubleclick.PublisherAdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@id/ad_view_sticky"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/ad_news_detail_sticky"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:layout_centerInParent="true"
android:visibility="gone"/>
</LinearLayout>
而不仅仅是
<com.google.android.gms.ads.doubleclick.PublisherAdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@id/ad_view_sticky"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/ad_news_detail_sticky"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:layout_centerInParent="true"
android:visibility="gone"/>