我想从片段中隐藏片段容器视图(在 MainActivity 布局内),但是当我单击任务按钮然后重新打开应用程序时它不起作用

Posted

技术标签:

【中文标题】我想从片段中隐藏片段容器视图(在 MainActivity 布局内),但是当我单击任务按钮然后重新打开应用程序时它不起作用【英文标题】:i want to hide fragment container view (Inside MainActivity Layout) from fragment but its not working when i click task button and then reopen app 【发布时间】:2021-08-14 12:06:12 【问题描述】:
@Override
public void onResume() 
    super.onResume();

    Activity mainActivity = getActivity();
    mFragmentViewContainer_MainActivity =  mainActivity.findViewById(R.id.nav_host_fragment_containerView);
    mFragmentViewContainer_MainActivity.setVisibility(View.GONE);

当我第一次打开应用程序时它可以工作,但是当我点击 android 的任务按钮然后重新打开应用程序时 片段容器视图再次可见

我在 OnResume 中设置了可见性 GONE

【问题讨论】:

【参考方案1】:

真的不知道这是否可行,但试试这个!

在您的片段中:

public class MyFragment extends Fragment 

    private MyFragmentListener mCallback;

    public interface MyFragmentListener
        public actionFromParent(int visibility);
    
    
    @Override
    public void onAttach(@NotNull Context context) 
        super.onAttach(context);
        mCallback = (MainActivity) context;
    
    
    @Override
    public void onResume() 
        super.onResume();
        mCallback.actionFromParent(View.INVISIBLE);
    


还有你的 MainActivity :

public class MainActivity extends AppCompatActivity implements MyFragment.MyFragmentListener 

    private View view;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        // ...
        
        view = findViewById(R.id.nav_host_fragment_containerView);
        
        // ...
    
    
    @Override
    public void actionFromParent(int visibility)
        view.setVisibility(visibility);
    


我不知道使用 onResume 中的设置可见性是否是个好主意。除非您知道自己在做什么,否则最好将其与按钮一起使用。

【讨论】:

以上是关于我想从片段中隐藏片段容器视图(在 MainActivity 布局内),但是当我单击任务按钮然后重新打开应用程序时它不起作用的主要内容,如果未能解决你的问题,请参考以下文章

片段 - 替换容器,如果 id 不是唯一的

iOS Swift 中的 Android 片段模拟

如何从活动中更改片段中视图的可见性

如何在android中去listview适配器项目点击监听器片段?

如何缓存片段视图

Admob 横幅隐藏列表视图片段的最后一项