在OnCreateView Call

时间:2015-04-23 17:17:46

标签: java android android-fragments android-activity viewgroup

我查看了大约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);

如果您可以建议我如何为片段添加视图,我会非常感激!

1 个答案:

答案 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;
    }

}