我正在使用如下所示的 aw TextSwitcher:
活动主.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextSwitcher
android:id="@+id/simpleTextSwitcher"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:measureAllChildren="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textAlignment="center"
android:textSize="20sp"
tools:text="Opening Credits" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="main star: James bond"
android:textAlignment="center"
android:textSize="20sp" />
</TextSwitcher>
我想为文本切换器创建一个滑入和滑出动画,使其看起来像电影信用的场景,其中下一个文本从底部滑入,而顶部的文本通过向上滑动消失。我已经尝试了一些不成功的事情。这是我到目前为止所拥有的:
我的 slide_in.xml 动画:
<translate
android:duration="1000"
android:fromYDelta="100%"
android:toYDelta="0"
/>
和我的 slide_out.xml 动画:
<translate
android:duration="1000"
android:fromYDelta="100%"
android:toYDelta="0%p"
/>
我在滑出动画时遇到了困难。
我想清楚我在这里想要什么。我希望 textSwitcher 中当前可见的任何内容向上滑动并且不再被看到,然后立即从底部滑动新文本以取代它。
这是我简单地调用它的方法:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
container.setOnClickListener { showNextText(it) }
simpleTextSwitcher.setCurrentText("Opening Credits");
val textAnimationIn = AnimationUtils.
loadAnimation(this, R.anim.slide_in);
val textAnimationOut = AnimationUtils.
loadAnimation(this, R.anim.slide_out);
simpleTextSwitcher.setInAnimation(textAnimationIn);
simpleTextSwitcher.setOutAnimation(textAnimationOut);
}
fun showNextText( view: View){
simpleTextSwitcher.setText("main star: james bond");
}
}
这是它现在的行为方式:
我想要发生的是“Opening Credits”这个词一直滑动到屏幕顶部并且永远不会出现。然后将文本“主要明星:詹姆斯邦德”从底部向上滑动到其位置。你能帮助我吗 ?