Android 互联网不可用时如何隐藏广告

Android 互联网不可用时如何隐藏广告,android,Android,我正在制作一个添加的应用程序。但是,即使internet连接不可用,它也会占用视图/布局中的空间。我只想隐藏它,不允许它在internet不可用时占用布局/视图中的空间。这是xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.andro

我正在制作一个添加的应用程序。但是,即使internet连接不可用,它也会占用视图/布局中的空间。我只想隐藏它,不允许它在internet不可用时占用布局/视图中的空间。这是xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerHorizontal="true"
    android:orientation="vertical" >

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:visibility="visible" >

            <ImageView
                android:id="@+id/explain_QuestionImageView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="visible" />

            <ScrollView
                android:id="@+id/scrollView1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="5.0dip"
                android:layout_marginLeft="1.0dip"
                android:layout_marginRight="1.0dip"
                android:layout_marginTop="1.0dip"
                android:fadeScrollbars="true"
                android:fadingEdge="none"
                android:fillViewport="true" >

                <TextView
                    android:id="@+id/explain_question"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_below="@id/explain_QuestionImageView"
                    android:fadingEdge="vertical"
                    android:scrollbars="vertical"
                    android:text=""
                    android:textColor="@color/question_text"
                    android:textColorHighlight="@color/question_text1" />
            </ScrollView>

            <TextView
                android:id="@+id/explain_separator"
                android:layout_width="match_parent"
                android:layout_height="5.0dip"
                android:layout_alignParentRight="true"
                android:layout_below="@id/explain_question"
                android:background="@drawable/blue_gradient"
                android:fadingEdge="vertical"
                android:padding="10dp"
                android:scrollbars="vertical"
                android:text="" />

            <ScrollView
                android:id="@+id/scrollView2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="100.0dip"
                android:layout_marginLeft="1.0dip"
                android:layout_marginRight="1.0dip"
                android:layout_marginTop="1.0dip"
                android:fadeScrollbars="true"
                android:fadingEdge="none"
                android:fillViewport="true" >

                <TextView
                    android:id="@+id/explain_explaination"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_below="@id/explain_separator"
                    android:fadingEdge="vertical"
                    android:padding="10dp"
                    android:scrollbars="vertical"
                    android:text=""
                    android:textColor="@color/dark_green" />
            </ScrollView>
        </LinearLayout>
        <!-- </ScrollView> -->

    </FrameLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
       >

        <com.google.ads.AdView
            android:id="@+id/ad"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:keepScreenOn="true"
            ads:adSize="BANNER"
            ads:adUnitId="a1501e5633125fb"
            ads:loadAdOnCreate="true"
            ads:testDevices="TEST_EMULATOR, 123456789ABCDEF" >
        </com.google.ads.AdView>

        <LinearLayout
            android:id="@+id/LL_Buttons1"
            android:layout_width="fill_parent"
            android:layout_height="40.0dip"
            android:layout_above="@id/ad"
            android:layout_gravity="bottom"
            android:background="#ff777777"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/PrevExplainationButton"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_centerInParent="true"
                android:layout_marginLeft="2.0dip"
                android:layout_weight="1.0"
                android:background="@drawable/ibtn"
                android:onClick="onPrevExplainationButtonClick"
                android:text="Previous" />

            <Button
                android:id="@+id/NextExplainationButton"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_centerInParent="true"
                android:layout_marginLeft="5.0dip"
                android:layout_marginRight="2.0dp"
                android:layout_weight="1.0"
                android:background="@drawable/ibtn"
                android:onClick="onNextExplainationButtonClick"
                android:text="Next" />
        </LinearLayout>
    </RelativeLayout>


请告诉我怎么做。

这里,举一个更具体的例子,您可以测试连接,然后将可见性设置为“gone”:

private boolean isNetworkConnected() {
    yourAddView = (AdView) findViewById(R.id.ad);
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ni = cm.getActiveNetworkInfo();
    if (ni == null) {
      // There are no active networks.
      //Set the visibility to "gone".
      //You can set visibility to gone here or when the function returns,
      //that is why there is a return false and true. 
      myView.setVisibility(8);
      return false;
    } else
    return true;
}
您还需要将这些权限添加到清单文件:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


希望有帮助

要检查数据连接是否可用,请使用以下功能

还要在清单中添加权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
试试这个

    ad.setAdListener(new AdListener() {

    @Override
    public void onAdLoaded() {
        ad.setVisibility(View.VISIBLE);
    }

    @Override
    public void onAdFailedToLoad(int error) {
        ad.setVisibility(View.GONE);
    }    

});

添加Abed Putra的Kotlin版本

MobileAds.initialize(此)
var madView=findviewbyd(R.id.adView)
madView.loadAd(AdRequest.Builder().build())
madView.adListener=对象:adListener(){
覆盖失败的TOLOAD上的乐趣(p0:Int){
madView.visibility=消失
}
}

在您的代码中,检查internet是否可用或是否存在连接,然后将“添加”视图的可见性设置为“消失”。
    ad.setAdListener(new AdListener() {

    @Override
    public void onAdLoaded() {
        ad.setVisibility(View.VISIBLE);
    }

    @Override
    public void onAdFailedToLoad(int error) {
        ad.setVisibility(View.GONE);
    }    

});
MobileAds.initialize(this)
var madView = findViewById<AdView>(R.id.adView)
madView.loadAd(AdRequest.Builder().build())
madView.adListener = object: AdListener(){
    override fun onAdFailedToLoad(p0: Int) {
        madView.visibility = GONE
    }
}