pro*_*m85 3 animation android view android-windowmanager
我有一个习惯RelativeLayout,我甚至已经设定setLayoutTransition(null);.我将此自定义视图添加到WindowManager中((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).updateViewLayout(this, layoutParams);
我在自定义视图中更改视图并更改了LayoutParamsfor WindowManager和之后的调用updateViewLayout...
我认为,LayoutParams对于WindowManager动画的变化,但我不确定...
如何禁用所有动画?
ste*_*cks 13
这个有点烦人.Android为所有窗口更改设置了动画,并且他们已经设置了标志以将其禁用为私有.您可以使用禁用窗口动画reflection
WindowManager.LayoutParams wp = new WindowManager.LayoutParams();
String className = "android.view.WindowManager$LayoutParams";
try {
Class layoutParamsClass = Class.forName(className);
Field privateFlags = layoutParamsClass.getField("privateFlags");
Field noAnim = layoutParamsClass.getField("PRIVATE_FLAG_NO_MOVE_ANIMATION");
int privateFlagsValue = privateFlags.getInt(wp);
int noAnimFlag = noAnim.getInt(wp);
privateFlagsValue |= noAnimFlag;
privateFlags.setInt(wp, privateFlagsValue);
// Dynamically do stuff with this class
// List constructors, fields, methods, etc.
} catch (ClassNotFoundException e) {
Logger.l.e(e.toString());
// Class not found!
} catch (Exception e) {
Logger.l.e(e.toString());
// Unknown exception
}
Run Code Online (Sandbox Code Playgroud)
现在wp不会为布局更改设置动画.请注意,更改窗口大小时,您可能会看到闪烁.我还没有办法解决这个问题.
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |