设计分类页面时点击按钮无法切换

这个分类页面是一个Fragment 里面需要填充左边的数据和右边的数据,需要实现点击左边的按钮显示右边的内容(左边也是Fragment 右边也是Fragment ),现在点击按钮软件就会报错,这个是怎么搞得

img

img

没有这么干的吧他俩在一个生命周期里面吗

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7776126
  • 你也可以参考下这篇文章:Fragment懒加载的实现方法(含源码分析)
  • 除此之外, 这篇博客: 两个简单Fragment之间的通信(三种方式)中的 截图如下:点击左侧fragment按钮改变右侧fragment文本 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在这里插入图片描述
    在fragment中,getFragmentManager底层还是getactivity.getFragmentManager
    思路:找第三方,activity

    1. 第一种
      根据activity里的布局id获取到相应放置的fragment实例
    FragmentManager fragmentManager = getFragmentManager();
    RightFragment id = (RightFragment) fragmentManager.findFragmentById(R.id.ll_right);
    id.changeText("yy");
    
    1. 第二种
      在replace时为fragment添加一个tag,根据tag获取相应的fragment实例
    transaction.replace(R.id.ll_right,new RightFragment(),"sss");
    
    FragmentManager fragmentManager = getFragmentManager();
    RightFragment tag = (RightFragment) fragmentManager.findFragmentByTag("sss");
    tag.changeText("qqqqq");
    

    3.第三种
    可以根据tag获取fragment实例,再根据控件的id获取到fragment的控件进行操作,较为麻烦

     FragmentManager fragmentManager = getFragmentManager();
                   RightFragment tag = (RightFragment) fragmentManager.findFragmentByTag("sss");
                    View view1 = tag.getView();
                    TextView tv_result = (TextView) view1.findViewById(R.id.tv_result);
                    tv_result.setText("dhiwhdiwh");
    

    注意:在fragment中,添加控件的点击事件不能用onclick方法,只能根据控件的id进行findViewById获取控件实例再setOnClickListener


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^