在某些片段

时间:2016-12-11 16:02:11

标签: android view interface fragment

我在我的活动中定义了一个自定义横幅。我的项目有这种结构:

- 活动:Fragment1, Fragment2 ,Fragment3

- Fragment2 Fragment4 ,Fragment5

因此,例如,要从Fragment2滑动到Fragment4,我直接从Fragment2替换片段。

现在,每当用户点击Fragment4时,我想在主要活动

中定义横幅
        AdView mAdView = (AdView) findViewById(R.id.adView);

成为隐身

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

我认为最好的方法(但到目前为止不是最简单的方法)是使用DataBinding并将每个片段的布局传递给布尔值,该值告诉它天气是否应该可见。 然后在您的布局中,您可以执行以下操作:

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

答案 1 :(得分:0)

我得到了最好的方法,所以现在想想你需要隐藏在MainActivity中生成的admob广告,这样当你打算调用片段时,只需设置主要活动中的可见性。

如果您有任何问题,请告诉我。

 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;