我在两个片段之间共享按钮的元素转换时遇到问题。 我正在使用导航组件在片段之间移动。
这是第一个片段中按钮的代码:
<Button
android:id="@+id/introduction_next_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/introduction_button"
android:padding="15dp"
android:layout_margin="25dp"
android:layout_alignParentBottom="true"
android:text="@string/introduction_next_button_text"
android:textColor="@color/introduction_next_button_text_color"
android:textSize="@dimen/introduction_button_text_size"
android:transitionName="introduction_next_button" />
这是第二个片段中按钮的代码。
<Button
android:id="@+id/introduction_next_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/introduction_button"
android:layout_margin="10dp"
android:transitionName="introduction_next_button"
android:text="@string/introduction_next_button_text"
android:textColor="@color/introduction_next_button_text_color"
android:textSize="@dimen/introduction_button_text_size" />
如您所见,我更改了尺寸,边距和填充。
这是第一个片段的代码:
introduction_next_button.setOnClickListener {
val extras = FragmentNavigator.Extras
.Builder()
.addSharedElement(introduction_next_button, "introduction_next_button")
.build()
findNavController(this)
.navigate(
R.id.action_introductionFragment1_to_introductionFragment2,
null,
null,
extras
)
}
这是第二个片段的代码:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sharedElementEnterTransition = TransitionInflater.from(context).inflateTransition(android.R.transition.move)
}
过渡效果很好,但是按钮的文本出现问题,一旦开始动画并且不跟随动画,该按钮的文本会跳到0,0(相对于按钮)。 您可以在所附的图像中看到它。
有什么建议吗?
也许我使用的android.R.transition.move
需要一些调整?
致谢