我查看了大约12篇SO帖子,并阅读了有关活动和片段的文档。
我有我认为的是一个非常常见的问题,但也许我错过了一些基本的东西。
我有一个片段。这个片段是从Java创建视图而不是从XML创建视图。在运行时,我想向它添加一个图像。我已经尝试将视图添加到viewgroupd,创建一个LinearLayout并将其添加到视图中,还有一些其他的东西,但它们都不起作用。我经常遇到崩溃(没有错误日志:?()。
这是我尝试过的最佳代码:
iImage image = new iImage(getActivity());
image.setImageResource(R.drawable.image);
LinearLayout.LayoutParams imageParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
image.setLayoutParams(imageParams);
((ViewGroup)getFragmentManager().findFragmentById(resourceId).getView()).addView(image);
如果您可以建议我如何为片段添加视图,我会非常感激!
答案 0 :(得分:2)
你有一个非常常见的问题。解决方案是将一个私有变量保存到您的膨胀视图中,以后可以使用它...可能的地方。在此示例中,我假设您的根布局(XML中最顶层的元素)是LinearLayout
public class DummyFragment extends Fragment {
private LinearLayout root;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
LinearLayout = (LinearLayout) inflater.inflate(R.layout.dummy_fragment_layout, container, false);
return root;
}
}