如何从嵌套片段中显示图像?

How to show image from inside the nested fragments?

虽然有很多关于嵌套片段的问题,但它仍然让我感到困惑 case.I 我正在制作一个 android 应用程序,它有一个 Activity 和一个框架 layout.I 正在将一个片段(比如片段 B)加载到框架中 layout.Fragment B 有一个包含两个 fragments.First viewpager 片段的 ViewPager(比如片段 VP1)有一个从 network.Now 加载图像的 gridview在 griditem 图像上单击 我想在具有 NetowrkImageView 的新片段中以全尺寸显示图像。我该怎么做呢?我试过需要调用 getChildFragmentManager(),但没有用。如果你们需要代码,我会展示的。提前致谢。 VP1 的 onCreateView()

public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.fragment_images_and_videos,null);
        gridItemList=new ArrayList<>();
        gridview= (GridView) view.findViewById(R.id.gridview);
        adapter=new ImagesVideosGridviewAdapter(getActivity(),gridItemList);
        gridview.setAdapter(adapter);
        gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
               // GridItemModel gridItem= (GridItemModel) parent.getItemAtPosition(position);
                Bundle args=new Bundle();
                args.putString("url",gridItemList.get(position).getUrl());
                FragmentTransaction transaction=getChildFragmentManager().beginTransaction();
                transaction.replace(R.id.frame_container_event_specific,new ShowFullImageFragment()).commit();//frame_container_event_specific is present in the main activity.

            }
        });
        new LoadMedia().execute("");
        return view;
    }

Logcat错误

java.lang.IllegalArgumentException: No view found for id 0x7f0d008a (com.test.rajat.a10times:id/frame_container_event_specific) for fragment ShowFullImageFragment{ccc6a0 #0 id=0x7f0d008a}

因为您的 VP1 布局不包含 R.id.frame_container_event_specific,片段管理器无法找到视图。它在 activity 布局中,因此您最好让 activity 中的片段管理器替换片段。

但再考虑使用片段方法。我认为将完整的图像片段制作成独立的 Activity 更简单、更容易。无论如何它显示完整图像。否则,即使您能够正确替换片段,您也必须做很多事情来管理片段后退堆栈,例如在用户点击后退按钮时替换前一个片段。