2016-12-11 3 views
0

Ich habe ein benutzerdefiniertes Banner in meiner Aktivität definiert. Mein Projekt hat diese Art der Struktur:Banner deaktivieren Ansicht in einem Fragment

-Activity: Fragment1, Fragment2, Fragment3

- Fragment2: Fragment4, Fragment5

So zum Beispiel von Fragment2 klauen Fragment4 Ich ersetze das Fragment direkt aus Fragment2.

Nun, wenn Benutzer klicken Sie auf Fragment4 ich das Innere der Haupttätigkeit definiert Banner wollen

 AdView mAdView = (AdView) findViewById(R.id.adView); 

Um unsichtbar

Wie kann ich das erreichen?

Antwort

0

Ich denke, der beste Weg (aber bei weitem nicht der einfachste) ist zu verwenden DataBinding und übergeben Sie das Layout jedes Fragments einen booleschen Wert, der es Wetter sagt oder nicht, dieses Banner sollte sichtbar sein. Dann in Ihrem Layout können Sie so etwas wie:

<layout ... > 
    <data> 
    <import type="android.view.View"/> 
    <variable name="showBanner" type="boolean" /> 
    </data> 
    ... 
    <BannerView 
     ... 
     android:visibility='@{showBanner ? View.VISIBLE : View.INVISIBLE}' 
     ... 
    /> 
    ... 
</layout> 
+0

Gibt es keinen anderen Weg? Wie interface meine Schaltfläche von Hauptaktivität? – Marcello

+0

Das hängt von Ihrer Implementierung ab. Verwenden Sie einen ViewPager, um zwischen Fragmenten zu wechseln? –

0

Ich habe einfach den besten Weg, dies so jetzt zu tun, denken Sie admob Anzeige zu verstecken brauchen, die so in MainActivity generieren, wenn Sie Fragment gehen nennen Setzen Sie einfach die Sichtbarkeit in Mainactivity.

Lassen Sie mich wissen, wenn Sie ein Problem haben.

case R.id.nav_frag1: 
       fragment = new Fragment1(); 
       mAdView = (AdView) findViewById(R.id.adView); 
       mAdView.setVisibility(View.GONE); 
       title = getString(R.string.title_frag1); 
       break;