iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
1
Mobile Development

Kotlin Android Jetpack 系列 第 19

{Day19}Navigation-動畫、返回、傳值

  • 分享至 

  • xImage
  •  

Navigation動畫

enterAnim:B頁面進入動畫。
exitAnim:A頁面結束動畫。
popEnterAnim:返回A頁面進入動畫。
popExitAnim:返回B頁面結束動畫。
<action
     android:id="@+id/toB"
     app:destination="@id/BFragment"
     //B慢慢浮現
     app:enterAnim="@android:anim/fade_in"
     //A往右滑出
     app:exitAnim="@android:anim/slide_out_right"
     //返回A往左滑入
     app:popEnterAnim="@android:anim/slide_in_left"
     //返回B往右滑出
     app:popExitAnim="@android:anim/slide_out_right" />

Navigation返回

單純返回

back.setOnClickListener {
   findNavController().popBackStack()
}

自定義返回後的事件

requireActivity().onBackPressedDispatcher.addCallback(
    requireActivity(), object : OnBackPressedCallback(true) {
        override fun handleOnBackPressed() {
            Toast.makeText(requireContext(), "自定義事件", Toast.LENGTH_LONG).show()
        }
   })

Navigation傳值

argument要設置在接收者的身上
defaultValue:預設值
name:參數Key值
argType:參數類型
<fragment
    android:id="@+id/BFragment"
    android:name="com.example.navigation.BFragment"
    tools:layout="@layout/fragment_b">

    <argument
       android:defaultValue="Hello"
       android:name="data"
       app:argType="string"/>
</fragment>

傳值

//系統自動生成有帶參數的方法(空的話就會帶defaultValue的值)
findNavController().navigate(AFragmentDirections.toB("Hello Jetpack"))

取值

//取得系統生成args
private val args by navArgs<BFragmentArgs>()

info.text = args.data


上一篇
{Day18}Navigation-跳轉
下一篇
{Day20}Hilt
系列文
Kotlin Android Jetpack 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言