简体   繁体   English

如何在片段中隐藏MainActivity工具栏中的项目

[英]How to hide item from the MainActivity toolbar in a fragment

In my application I have Toolbar in the MainActivity and inside the MainActivity I have a ViewPager to show 4 fragment. 在我的应用程序中,我在MainActivity中具有Toolbar ,而在MainActivity中,我具有一个ViewPager以显示4个片段。

The toolbar contains some images ( button ). toolbar包含一些图像( button )。

I want in one of these fragments to hide the image from the toolbar . 我希望在这些片段之一中隐藏toolbar的图像。 I wrote the code below, but it hides the image in all the fragments . 我在下面编写了代码,但是它在所有fragments中都隐藏了图像。

My code: 我的代码:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                troy.setVisibility(View.GONE);
            }
        }, 50);
    }
}

I want to hide it just in my current fragment , not all of them. 我只想将其隐藏在当前fragment ,而不是全部隐藏。

How can I do it? 我该怎么做?

You can use addOnPageChangeListener() of your ViewPager 您可以使用addOnPageChangeListener()您的ViewPager

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {       

    }

    @Override
    public void onPageSelected(int position) {
         if (position == 0) { // Condition may vary according to your needs...
             troy.setVisibility(View.GONE);
         } else {
             troy.setVisibility(View.VISIBLE);
         }
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM