- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
无需过多介绍,我希望能够在 ListView
中“滑动”元素,类似于 GMail 中的“滑动到存档”功能。我对 onTouchListener 没意见,我的问题是关于幻灯片动画。
首先想到的两件事是..
view.setPadding(slideOffset, 0, 0, 0);
和..
view.setX(slideOffset);
前者非常黄油,即使在模拟器上也是如此。
后者在我的 Galaxy Nexus 上有点笨拙。
我的问题:
* 无论我尝试过什么,正确的方法是什么?
为什么 setX
不如 setPadding
平滑?
一种方法是否比另一种更符合 Android 最佳实践?
补间翻译动画是一种选择吗?如果是这样,您能否提供一个简短的示例来为我指明正确的方向?
编辑:
为了清楚起见,我附上了一张我试图模拟的效果的图片。
最佳答案
我很确定 setX() 比较慢,因为它影响了它的 parent 。更改 View 的 X 时,每次更新值时它都会调用父级的 onLayout/onMeasure。这是因为child 的X 值可能会导致parent 上的其他item 发生移动,因此parent 需要自己重绘。
您可以通过扩展 ViewGroup 并写入这些方法的日志来轻松测试它。然后,您可以使用这两种方法,填充与 setX,看看会发生什么。
您是否要为该项目制作动画?或者您是否希望用户像在 Gmail 上一样移动它?您可以使用 ObjectAnimator 来处理项目的“X”值。结合您的项目的“硬件层”,它将创造更流畅的体验。您可以在此处找到有关如何执行此操作的更多详细信息:http://developer.android.com/guide/topics/graphics/hardware-accel.html
关于android - 使用 setX、setPadding 或补间动画滑动 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14677757/
我需要为 Java 设置一个系统环境变量。我目前正在使用这种方法: setx /M JAVA_HOME "C:\Program Files (x86)\Java\jdk1.6.0_17" 我的问题:是
我使用setx命令设置了OGRE_HOME: setx OGRE_HOME D:\Program Files\OgreSDK 现在我需要更改为OGRE_HOME 的值。如何搜索我设置的所有值?如果我再
我已经尝试通过下面的命令通过批处理文件将一些路径附加到系统路径变量: setx PATH "%PATH%;C:\Program Files\MySQL\MySQL Server 5.5\bin" 运行
谁能解释这个结果? 设置路径后,没有变化。这是在管理员命令行中运行的: C:\Windows\system32>setx path "C:\Windows\system32;C:\Windows;C:
我需要存储一个值(时间戳)并稍后在批处理文件中检索它。因此,我在 SO 中搜索了有关如何存储持久变量的答案并找到了 setx。 我是这样使用的: C:\tmp>setx TIME_VAR %time%
我正在尝试在 win32 shell 脚本中更新系统 Path 变量,但前提是值不存在。 我当前的版本看起来像这样: for %%f in (xyz.exe) DO if [%%~$PATH:f]==
我想使用 setx 添加一个用户变量。我试过: setx LOL abcd > SUCCESS: Specified value was saved echo %LOL% > %LOL% 为什么不设置
我需要一个系统变量并为其分配一个空字符串值。我试过了 setx samplepassword "" 但是在echo %samplepassword% , 应该是空字符串的是 %samplepasswo
我正在尝试通过 cmd 脚本设置 var,但遇到了一些问题, setx /M JAVA_HOME "D:\Tool\JDK" setx /M PATH "%PATH%;%JAVA_HOME%\bin;
我写了以下内容: public class Point { private double _radius , _alpha; public Point ( int x , int
我正在使用 setX 和 setY 来移动屏幕上的 View 。但是,我读到 android 首先需要计算 View 位置,否则它会给出 NullPointerException(对我来说是什么)。我
现在我知道这个问题似乎有一个明显的答案,但实际上 setX 和 setY 函数出了什么问题,为什么它们不能按预期工作。我正在尝试在应用程序运行到某些位置时动态移动 View 。它们在我使用 mdp 的
View 上的 setX 和 setTranslationX 有什么区别?它们对我来说似乎是一样的,但它们都存在于 android 平台上。 谢谢 最佳答案 来自 setX() 的文档: Sets t
我正在尝试制作一个简单的应用程序,以便更好地了解如何在 Android 上使用触摸事件。现在,我的 Activity 只是将 ImageView 移动到屏幕上触摸的坐标(MotionEvent 的坐标
我正在尝试在 Android Activity 中动态创建并移动图像。但是,setX() 和 setY() 方法似乎无法正常工作。它在首次创建和放置图像时正确设置图像的位置,但任何更新它的尝试都会导致
我有一个包含大量批处理文件的文件夹 -- 超过了 Windows 资源管理器一次在屏幕上显示的数量。其中一些聚集在一起,需要按顺序执行(但不是在相同批处理中,因为在批处理文件可以处理的步骤之外,中间步
你好,目前我想创建一个简单的动画,设置 TextView 的 X 位置延迟..这是我的代码.. public class MainActivity extends Activity { flo
我刚刚重新配置了一个以前工作的项目以与早期版本的 android (2.2) 一起工作......只是发现它不会编译像这样的行: mybutton.setX(myfloatvalue); 提示“方法
我在设置全局环境变量时遇到问题 PATH永久使用 SETX . 我已经阅读了类似问题的答案,例如 Invalid syntax with setx以及阅读 SS64 上的语法. 据我所知,以下行遵循
这个问题在这里已经有了答案: How to update PATH variable permanently from Windows command line? (7 个答案) 关闭 8 年前。
我是一名优秀的程序员,十分优秀!