본문 바로가기

Android

navigation navigate 를 layout xml 에서 처리 하기

그냥 궁금증에 navigation navigate 를 xml 에서 처리할 수있나? 라는 의문에 잠시 코드를 만지작 해봤는데

일단 된다. 먼저 아래 처럼 Navigation 를 xml 에서 사용하기 위해 import 해준 뒤 이동해야할 액션 정보를 알기 위해 R 를 추가한다.

<import type="androidx.navigation.Navigation" />
<import type="com.example.yourapp.R" />

그러곤 이벤트를 발생 시킬 View 에서 다음과 같이 처리 한다.

<View
...
onClick="@{(v) -> Navigation.findNavController(v).navigate(R.id.action)}"
/>

그럼 끝 model 과 activity 를 거치지 않고 순수 xml 에서 fragment transition 이 되니 나름 좋긴 한데 navigation 쪽에서 view id 를 할당할 수 있게 해주는게 나을듯한?