如何从嵌套片段中显示图像?
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
更简单、更容易。无论如何它显示完整图像。否则,即使您能够正确替换片段,您也必须做很多事情来管理片段后退堆栈,例如在用户点击后退按钮时替换前一个片段。
虽然有很多关于嵌套片段的问题,但它仍然让我感到困惑 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
更简单、更容易。无论如何它显示完整图像。否则,即使您能够正确替换片段,您也必须做很多事情来管理片段后退堆栈,例如在用户点击后退按钮时替换前一个片段。