- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个绝对布局。在该布局中是一个自定义 View ,它占据了屏幕的左侧三分之一。我在布局中放置了一个按钮,我想让自定义 View 在屏幕上滑动。我已经尝试在自定义 View 上使用动画资源(翻译...“slidein”和“slideout”)和函数 startAnimation,但我无法获得我正在寻找的行为。
好的...我从可见的自定义 View 开始,在 onCreate 中找到该 View 并使用我的滑出动画将其设置为动画。那很好用。我发现我需要在动画中设置“fillAfter”,以便自定义 View 不在屏幕上。
现在,当我按下我的按钮时,我想让自定义 View 在屏幕上滑回,所以我再次使用 startAnimation 触发我的滑入动画,但使用 slidein。但是......这会导致 View 首先跳回其原始位置,然后向右滑动......导致它在屏幕中间完成。
如何让动画使用 View 的当前位置作为动画起始位置,而不是它的原始位置?
谢谢
最佳答案
我也经历过这个问题描述的闪烁。我的解决方案是使用改进的 Honeycomb 动画 API。有一个方便的库可以将这些一直移植回 Android 1.0:
http://nineoldandroids.com/
有关 Honeycomb 动画 API 的更多信息,请参阅: http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html
在我的例子中,我在 RelativeLayout 中有 2 个重叠的 LinearLayouts。我想将顶部的 LinearLayout 滑出屏幕并显示下面的底部 LinearLayout。然后我想在屏幕上将 LinearLayout 滑回其原始位置,以便顶部布局再次覆盖底部布局。使用旧的动画 API,我在第二个动画(屏幕外 -> 屏幕上)开始之前看到了闪烁。
有了新的 API,这项任务变得微不足道:
// Slide out (add to button handler)
ObjectAnimator.ofFloat(mTopLayout, "translationY", mTopLayout.getHeight()).start();
// Slide back in (add to button handler)
ObjectAnimator.ofFloat(mTopLayout, "translationY", 0).start();
Honeycomb Animation API 实际上是在屏幕上四处移动对象(而不是像旧的动画 API 那样假装移动它们),因此无需使用 filleAfter、fillBefore 等。
关于android - 挣扎于 View 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5073265/
我正在尝试创建一个函数来从一个文件中读取摩尔斯电码,将其转换为英文文本,将转换后的文本打印到终端,并将其写入输出文件。这是一个粗略的开始...... #define TOTAL_MORSE 91 #d
好吧,我不知道我做错了什么,我正在尝试在勾选复选框时修改 css。 这是 HTML 代码: PHP: if( isset($_POST['com']) && isset($_POST['check
我是一个 C 语言新手,正在努力解决作业中的 C 语言问题。我需要创建一个简单的程序,将结构类型写入文件,然后读取文件以恢复先前插入的数据。我让这两个部分工作。 还有另一个功能是必需的,它基本上要求用
我有以下代码: window.open("https://www.google.com", menubar=0, true); window.open("https://www.google.com
解决方案:对于以后看到这个的人来说,我使用的解决方案确实是viewDidLayoutSubviews。解决方案实际上相当复杂——每次页面需要重新布局时,我都必须计算几个缩放值并动态调整 Art Vie
我有一个看起来像这样的模型: public class SampleModel { public static SampleModel Create() { retur
我目前正在尝试通过 USB 发送 float 。PC 有一个运行以下代码的 Qt 应用程序 float x = 2.0; memcpy(buffer.data() + 14, &x, sizeof
我正在将一个巨大的 csv (18GB) 加载到内存中,并注意到 R 和 Python 之间存在很大差异。这是在 AWS ec2 r4.8xlarge which has 244 Gb of memo
我是一名优秀的程序员,十分优秀!