fragment 를 사용하는 것도 약간 달라졌다.
다른 건 다 똑같지만 onCreateView
에서는 getRoot()
를 붙여서 리턴하고 onActivityCreated
에서는 바로 바인딩으로 받으면 된다. 자동으로 만들어주는 바인딩 클래스도 되지만 그냥 모델하나만 넣을 거면 `ViewDataBinding`으로 받아도 충분하다. 하지만 그래도 나중에 필요할 때 이름 바꾸기 귀찮으니 제대로 된 이름 사용하는 걸로 받는 게 낫지 싶다.
바인딩으로 하니 ButterKnife를 따로 안해서 정말 편하다.
public class InputFragment extends Fragment { public InputFragment() { // Required empty public constructor } public static InputFragment instance() { return new InputFragment(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return DataBindingUtil.inflate(inflater, R.layout.activity_input, container, false).getRoot(); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); InputViewModel model = new InputViewModel(); ActivityInputBinding binding = DataBindingUtil.getBinding(getView()); binding.setModel(model); model.onCreate(); } }
기존 예제에서 사용했던 걸 그대로 사용한다고 치면 저렇게만 해줘도 충분하다.