【发布时间】:2020-12-20 16:36:32
【问题描述】:
我有一个布局在scene_a.xml 中的活动,应该使用TransitionManager 和Scene 替换为scene_b.xml 中的布局。那里的场景包含按钮。在第二个场景中处理事件的惯用方式是什么?
activity.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content">
<FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/scene_root">
<include layout="@layout/scene_a" android:id="@+id/scene" />
</FrameLayout>
</FrameLayout>
scene_a.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:id="@+id/button_a" android:text="A" />
</FrameLayout>
scene_b.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:id="@+id/button_b" android:text="B" />
</FrameLayout>
onCreate() 在活动代码中
// Inflate activity.xml using ViewBinding “binding”.
with (binding) {
scene.buttonA.setOnClickListener {
val newScene = Scene.getSceneForLayout(binding.sceneRoot, R.layout.scene_b, context)
val transition = Fade()
TransitionManager.go(newScene, transition)
}
}
【问题讨论】:
标签: android android-layout kotlin android-transitions