Articles of android transitions

方向改变后,转换闪烁

UPDATE 我开通了Google https://issuetracker.google.com/issues/63663775的错误 我正在尝试在我当前的Android应用程序中使用makeSceneTransitionAnimation 。 我有一个源Activity ,包含一个Fragment ,在片段内是一个RecyclerView 。 当我点击RecyclerView一个图像时,我转换到了我的目标Activity ,该目标Activity包含一个片段,该片段使用可接受的animation正确显示图像。 按下后退button可正确反转animation。 上述工作正常人像和风景方向。 当查看目标碎片时改变方向,然后按下后退button,就会发生闪烁问题。 还有其他一些问题,如图像不能直接返回到原来的位置,而在较旧的设备上,我会看到横向的线条,就像来自调谐不良的模拟电视的干扰。 它的BLINKING非常糟糕,设备屏幕全黑约500ms。 我已经下载并部署了谷歌示例共享元素转换应用程序,它似乎有相同的“function”。 我已经尝试了多种解决scheme,而且没有一个能够像这样工作 。 这是展示这个问题的一个方面。 LOGCAT增加 07-21 12:57:18.097 1962-1967/com.incentive.yellowpages I/zygote64: Do partial code cache collection, code=30KB, data=21KB 07-21 12:57:18.099 1962-1967/com.incentive.yellowpages I/zygote64: After code cache collection, code=30KB, data=23KB 07-21 12:57:18.099 1962-1967/com.incentive.yellowpages I/zygote64: Increasing code cache capacity to 128KB 07-21 12:57:20.540 1962-2058/com.incentive.yellowpages […]

共享元素转换成RecyclerView中的视图,可能吗?

鉴于具有共享元素的Activity的正常棒棒糖转换,例如https://github.com/codepath/android_guides/wiki/Shared-Element-Activity-Transition ,通常是从View到Recycler View转换到一个目标活动的正常视图。 然而,如果有针对性的观点,也是在一个回收视图viewholder,有没有办法使这种可能(即提供有针对性的观点ActivityOptionsCompat)? 谢谢!

TextInputLayout共享元素转换问题

这里我们去:两个共享元素转换的活动(Button)。 第二个Activity有一个带有提示的TextInputLayout : <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="true" android:focusableInTouchMode="true" android:gravity="center_horizontal" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GO" android:transitionName="test"/> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="WTF?!"> <android.support.design.widget.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.design.widget.TextInputLayout> </LinearLayout> 第二个Activity的input转换被延迟以澄清问题: TextInputLayout的提示忽略转换animation并在转换开始后立即显示。 在animation结束时,您可以在提示下方看到正确的animationEditText背景(水平线)。 这是一个错误还是我错过了什么? 这是第二个Activity : public class SecondActivity extends AppCompatActivity { public static void launch(Activity activity, View sharedElement) { Intent intent = new Intent(activity, SecondActivity.class); ActivityOptionsCompat options = […]

另一个活动出现,覆盖了一半的屏幕大小

我有一个button,点击打开另一个活动,从下面出现,覆盖了一半的屏幕。 我search了它,但没有得到任何有用的方法,除了overridePendingTransition函数,这是有用的获取animation的活动过渡,但这并没有解决我的问题。 我知道这是在谷歌环聊完成,如图中所示,但找不到任何有用的解决scheme。 当我们按下button时,这个活动出现并覆盖了屏幕大小的一半 当我们向上滚动活动成为我们的主要活动 任何想法如何做到这一点? 谢谢

如何在活动之间的转换完成时得到通知?

就像标题说的那样… 我正在使用活动之间的转换,我希望为这两种活动提供某种types的监听器(或事件),以便在转换完成时以及在启动之前。 以下是创build转换的示例代码: final Intent intent = new Intent(activity, TargetActivity.class); if (initialQuery != null) intent.putExtra(EXTRA_INITIAL_QUERY, initialQuery); final String transitionName = activity.getString(R.string.transition_name); ViewCompat.setTransitionName(viewToTransitionFromAndTo, transitionName); final ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, viewToTransitionFromAndTo, transitionName); ActivityCompat.startActivityForResult(activity, intent, requestCode, options.toBundle());

将列表项目转换为Google Inbox等细节

我希望ListView项目展开成显示项目详细信息的Fragment / Activity 。 以下是一个显示animation的示例 – https://dl.dropboxusercontent.com/u/75404011/inbox-animation.mp4 我像RecyclerView项目打开animation看着谷歌收件箱,但无法感知的本质。 任何人都可以给我一些这方面的指针?

如何知道一个活动是否在没有转换的情况下开始?

我有一个使用案例,我主要是通过一个转换来开始一个活动,但是从导航抽屉中打开时并不是这种情况。 为了保持转换的顺利,我有一个Transition.TransitionListener ,在转换完成时触发一些UI更新。 所以我有这样的东西: public class SomeActivity extends Activity { public void onCreate(Bundle savedInstanceState){ // … if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { Transition sharedElementEnterTransition = getWindow().getSharedElementEnterTransition(); sharedElementEnterTransition.addListener(new Transition.TransitionListener() { // … @Override public void onTransitionEnd(Transition transition) { doSomeUiUpdating(); } }); } else { // Pre-Lollipop doSomeUiUpdating(); } } } 这在使用animation启动Activity时效果很好,但是如何知道Activity是否在没有转换的情况下启动,以便我可以调用doSomeUiUpdating() ? 我确定在Activity , Window , Transition或者我忽略的某个地方必须有一个简单的方法。 […]

共享元素转换:embedded到另一个活动中的片段中的活动

我正在尝试添加共享元素转换到我的应用程序。 情景是,用户点击图像缩略图,而不是用全屏图像查看打开另一个活动。 如果共享视图直接托pipe在目标活动的布局中,这可以正常工作。 顺利进入/退出animation。 但是当我试图在嵌套在目标活动中的片段中实现类似的效果时,这种方法不起作用 。 有趣的是,inputanimation没有显示,但退出animation工作正常。 另一个更复杂的视图层次结构是,如果目标视图(ImageView)被托pipe在目标活动的框架布局中的视图寻呼机内。 有人有同样的问题吗? 编辑:我的点击侦听器代码 public class OnClickPicture extends OnClickBase { private ObjectPicture object; public OnClickPicture(Activity_Parent activity, ObjectPicture object) { super(activity); this.object = object; } public void onClick(View v) { picasso.load(object.getFullUrl()).fetch(); Intent intent = new Intent(activity, ActivityPicture.class); intent.putExtra("picture_object", helper.gson.toJson(object)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && v != null) { Pair<View, String> […]

如何在Android中从上到下的animation?

我能够从下到上的animation,当我去下一个活动,但现在当我按下回来我使用相同的代码给animation从上到下的animation,但它总是去自上而下,所以我的问题是如何给animation从上到下当我按下Android设备上的button? 请在下面find我的代码。 我在使用Intent从一个Activity转换到另一个时使用它。 overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up ); 而xml是:slide_in_up.xml <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="100%p" android:toYDelta="0%p" android:duration="@android:integer/config_longAnimTime"/> 和slide_out_up.xml是 <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="0%p" android:toYDelta="-100%p" android:duration="@android:integer/config_longAnimTime"/>

使用转换从片段启动活动(API 21支持)

我试图将一个Android应用程序移植到新的支持库(support-v4:21.0.0),并且在从一个转换中从Fragments开始活动时遇到问题。 在我的活动中,我一直在做类似的事情: Bundle options = ActivityOptionsCompat.makeSceneTransitionAnimation(this).toBundle(); ActivityCompat.startActivityForResult(this, intent, REQUEST_SOMETHING, options); 这对于活动来说工作正常。 但是,如果我尝试做类似的碎片,如: Activity activity = getActivity(); Bundle options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity).toBundle(); ActivityCompat.startActivityForResult(activity, intent, REQUEST_SOMETHING, options); 事实certificateonActivityResult()没有被调用的Fragment,但只有封闭的活动。 我还没有find支持库中的任何东西将选项Bundle作为parameter passing给实际Fragment上的startActivityForResult() ,并让它在该Fragment中callbackonActivityResult() 。 这可能吗? 最简单的解决scheme是在Activity中处理所有的onActivityResult()调用,但我宁愿不这样做,因为我有很多可能接收callback的碎片。 帮助表示赞赏。 谢谢!