我正在尝试向表中添加一行并将该行滑入视图,但是slidedown函数似乎是在表格行中添加了一个显示:块样式,这会混淆布局.
任何想法如何解决这个问题?
这是代码:
$.get('/some_url',
{ 'val1': id },
function (data) {
var row = $('#detailed_edit_row');
row.hide();
row.html(data);
row.slideDown(1000);
}
);
Run Code Online (Sandbox Code Playgroud) 在iOS中,有一个非常简单和强大的工具来动画添加和删除UITableView行,这里是来自youtube视频的剪辑,显示默认动画.请注意周围行如何折叠到已删除的行上.此动画可帮助用户跟踪列表中的更改以及数据更改时列表中的位置.
自从我在Android上开发以来,我发现没有相同的工具来动画TableView中的各个行.调用notifyDataSetChanged()我的适配器会导致ListView立即使用新信息更新其内容.我希望在数据发生变化时显示一个新行推入或滑出的简单动画,但我找不到任何记录的方法来执行此操作.看起来LayoutAnimationController可能包含一个键来使其工作,但是当我在ListView上设置LayoutAnimationController(类似于ApiDemo的LayoutAnimation2)并在列表显示后从我的适配器中删除元素时,元素立即消失而不是被动画化.
我还尝试过以下内容来删除单个项目时的动画:
@Override
protected void onListItemClick(ListView l, View v, final int position, long id) {
Animation animation = new ScaleAnimation(1, 1, 1, 0);
animation.setDuration(100);
getListView().getChildAt(position).startAnimation(animation);
l.postDelayed(new Runnable() {
public void run() {
mStringList.remove(position);
mAdapter.notifyDataSetChanged();
}
}, 100);
}
Run Code Online (Sandbox Code Playgroud)
但是,动画行周围的行不会移动位置,直到它们在notifyDataSetChanged()调用时跳转到新位置.一旦放置了元素,ListView就不会更新它的布局.
虽然编写我自己的ListView实现/分支已经超出了我的想法,但这看起来似乎不应该那么困难.
谢谢!
我正在使用a RotateAnimation来旋转我在Android中用作自定义循环微调器的图像.这是我的rotate_indefinitely.xml文件,我放入res/anim/:
<?xml version="1.0" encoding="UTF-8"?>
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:duration="1200" />
Run Code Online (Sandbox Code Playgroud)
当我将它应用于我的ImageView使用时AndroidUtils.loadAnimation(),效果很好!
spinner.startAnimation(
AnimationUtils.loadAnimation(activity, R.anim.rotate_indefinitely) );
Run Code Online (Sandbox Code Playgroud)
一个问题是图像旋转似乎在每个周期的顶部暂停.
换句话说,图像旋转360度,暂停,然后再旋转360度等.
我怀疑问题是动画是使用像android:iterpolator="@android:anim/accelerate_interpolator"(AccelerateInterpolator)的默认插值器,但我不知道如何告诉它不插入动画.
如何关闭插值(如果这确实是问题)以使我的动画循环顺利进行?
是否可以同时在两个不同的元素上运行两个动画?我需要Jquery排队动画这个问题的反面.
我需要做这样的事......
$('#first').animate({ width: 200 }, 200);
$('#second').animate({ width: 600 }, 200);
Run Code Online (Sandbox Code Playgroud)
但要同时运行这两个.我唯一能想到的就是setTimeout每个动画使用一次,但我不认为这是最好的解决方案.
我试图动画一些视图,以便它们被景观中的巨型键盘阻挡.如果我简单地为框架设置动画,它的效果很好,但是其他人认为这会适得其反,我应该更新NSLayoutConstraints.但是,它们似乎不具有动画效果.有没有人让他们成功地工作?
//heightFromTop is an NSLayoutConstraint referenced from IB
[UIView animateWithDuration:0.25 animations:^{
self.heightFromTop.constant= 550.f;
}];
Run Code Online (Sandbox Code Playgroud)
结果是立即跳到有问题的高度.
我有一个带图像的UIImageView.现在我有一个全新的图像(图形文件),并希望在这个UIImageView中显示它.如果我只是设置
myImageView.image = newImage;
Run Code Online (Sandbox Code Playgroud)
新图像立即可见.不可动画.
我希望它能很好地淡出新图像.我想也许有更好的解决方案,而不仅仅是创建一个新的UIImageView并与动画混合?
我有三个活动,其启动模式是单个实例.
使用onfling(),我左右摆动它们.
问题是当我从右向左滑动滑动过渡是可以的但是当我从左向右滑动时,我从右向左滑动过渡.
我知道为什么会发生这种情况因为我总是发出新的意图.但是,现在我需要改变从左向右滑动的动画.
我知道有一个名为的方法overridingTransitionPending(),但我不知道如何用XML定义我的动画.
我有一个UITableView有两种模式.当我们在模式之间切换时,每个部分有不同数量的部分和单元格.理想情况下,当表增长或缩小时,它会做一些很酷的动画.
这是我尝试过的代码,但它没有做任何事情:
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5];
[self.tableView reloadData];
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
有关如何做到这一点的任何想法?
如何FLAG_ACTIVITY_NO_ANIMATION在AndroidManifest文件中正确使用Intent标志?我认为我的问题是微不足道的,但我找不到好的例子或解决方案.
<intent-filter>
<data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
但是,compliator没有报告错误,但是data不正确.我只想在活动之间切换时禁用动画.我可以getWindow().setWindowAnimations(0);在onCreate或onResume中使用,但使用flag是更好的方法,不是吗?
我也可以在代码中使用:
Intent intent = new Intent(v.getContext(), newactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但是我想在Android Manifest中使用这个标志.如果从第二个活动返回到第一个活动,也要禁用动画.
我希望有一个2秒的ImageView动画,花费1000毫秒渐弱,然后1000毫秒淡出.
这是我在ImageView构造函数中到目前为止的内容:
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setDuration(1000);
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setStartOffset(1000);
fadeOut.setDuration(1000);
AnimationSet animation = new AnimationSet(true);
animation.addAnimation(fadeIn);
animation.addAnimation(fadeOut);
this.setAnimation(animation);
Run Code Online (Sandbox Code Playgroud)
当我运行该动画时,没有任何显示.但是,当我删除其中一个alpha动画时,行为按预期工作.
我已经尝试过的事情:
setFillBefore,setFillAfter和setFillEnabled.LinearInterpolator到AnimationSet.animation ×10
android ×5
ios ×2
jquery ×2
autolayout ×1
cocoa-touch ×1
html-table ×1
iphone ×1
javascript ×1
listview ×1
slidedown ×1
uiimage ×1
uiimageview ×1
view ×1