gpt4 book ai didi

java - 如何在android中滑入和滑出 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:53 26 4
gpt4 key购买 nike

我正在尝试制作一个 View (带有一些按钮的线性 View - R.id.playerControl) 根据其他事件的上下文滑入和滑出在 Activity 中。

为此,我有一个 selectMediaItem 方法,当用户分别选择或取消选择一个项目时,它应该显示或隐藏 View 。

我是 android 中动画的新手,由于两个原因我无法让它工作:

  1. View 在动画时间之外仍保留在屏幕上,因此当它完成滑出后会跳回 - 然后在请求滑入时跳出并滑回。

  2. 随着 View 消失,屏幕上出现永久的黑色区域。我希望 View 在可见时填充空间,而在不可见时为 GONE。为此,我希望布局也能随着动画而改变,这样它就可以将其他东西推开。

我的代码:

protected void selectMediaItem( ItemHandle item ) {

if (item != null) {
if (toPlay == null) {
View playerControl = findViewById(R.id.playerControl);
Animation slideInAdmination = AnimationUtils.loadAnimation(this, R.anim.slide_in);
playerControl.startAnimation(slideInAdmination);
}
}
else {
if (toPlay != null) {
View playerControl = findViewById(R.id.playerControl);
Animation slideInAdmination = AnimationUtils.loadAnimation(this, R.anim.slide_out);
playerControl.startAnimation(slideInAdmination);
}
}
toPlay = item;
}

slide_in.xml

    <translate
android:duration="1000"
android:fromYDelta="100%p"
android:toYDelta="0" />


</set>

有没有一种简单的方法可以将 View 滑入到位并再次滑出?

最佳答案

我强烈建议您使用 Property Animations .您的示例代码就像这样。

mSlidInAnimator = ObjectAnimator.ofFloat(mSlidingView, "translationY", 0);
mSlidInAnimator.setDuration(200);
mSlidInAnimator.start();

mSlidOutAnimator = ObjectAnimator.ofFloat(mSlidingView, "translationY", newPosOfView);
mSlidOutAnimator.setDuration(200);
mSlidOutAnimator.start();

“translationY”表示向上/向下动画。对左右动画使用“translationX”。

此处 newPosOfView 将是相对于您的默认 View 位置的位置。例如,如果您想将 View 向下移动 50dp,则像素为 50dp。在 slideInAnimator 中,pos 为 0,因为你想移动到 View 的原始位置。

仔细阅读文档,很有帮助。

关于java - 如何在android中滑入和滑出 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16777916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com