片段的根视图在方法调用时显示为null

时间:2018-03-22 00:49:30

标签: android android-layout android-fragments

我无法实现编辑片段根视图的方法。这是有问题的代码

public class CanvasFragment extends Fragment {
View rootView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    rootView = inflater.inflate(R.layout.canvas_layout, container, false);
    return rootView;
}

public void updateColor(String color){
    rootView.setBackgroundColor(Color.parseColor(color));
}

我的问题与我的主要活动中的一些代码一起出现了:

    @Override
public void sendColor(String color) {
    FragmentManager fragmentSwitchManager = getFragmentManager();
    FragmentTransaction fragmentSwitchTransaction = fragmentSwitchManager.beginTransaction();
    CanvasFragment canvasFragment = new CanvasFragment();

    fragmentSwitchTransaction.replace(R.id.paletteFrame, canvasFragment);
    fragmentSwitchTransaction.addToBackStack(null);
    fragmentSwitchTransaction.commit();

    canvasFragment.updateColor(color);
}

正如您所看到的,在我的主要活动中,我使用PaletteFragment替换paletteFrame中的CanvasFragment,即框架布局。我已对此进行了测试并且工作正常,但在尝试调用updateColor()时,我收到错误。

错误声称rootView是一个空对象引用,因此我无法在其上调用setBackgroundColor()。我不确定为什么会这样,因为我之前测试过类似的代码(其中我没有替换片段)并且它工作正常。任何帮助,将不胜感激。谢谢!

0 个答案:

没有答案