Che*_*rra 32 java android material-design activity-transition shared-element-transition
我正在尝试使用前Lollipop设备(4.x)上的共享元素进行活动转换.可能吗?到目前为止,我正在尝试这个:
public class RewardDetail extends ActionBarActivity {
@Override
public void onCreate(final Bundle savedInstanceState) {
...
ViewCompat.setTransitionName(imageView, TRANSITION_NAME);
}
...
public static void launch(ActionBarActivity activity, View transitionView, WelcomeReward detailData) {
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, transitionView, TRANSITION_NAME);
Intent intent = new Intent(activity, RewardDetail.class);
intent.putExtra(PARAM_DATA, detailData);
ActivityCompat.startActivity(activity, intent, options.toBundle());
}
}
Run Code Online (Sandbox Code Playgroud)
叫做:
@Override
public void onClick(final View v) {
int position = recyclerView.getChildPosition(v);
WelcomeReward welcomeReward = data.get(position);
RewardDetail.launch(WelcomeRewardActivity.this, v.findViewById(R.id.reward_view), welcomeReward);
}
Run Code Online (Sandbox Code Playgroud)
但它导致"常规"转换(没有共享元素).有任何想法吗?
编辑
根据这段视频,可以做到:
https://www.youtube.com/watch?v=RhiPJByIMrM&index=8&list=WL
是否有一个图书馆已经为棒棒糖前实现了这个?
Ale*_*ood 18
不,在Lollipop之前的设备上无法进行活动/片段转换.根据文件:
如果能够,请使用其他启动信息启动活动.
在Android 4.1+中,引入了其他选项以允许更多地控制活动启动动画.应用程序可以将此方法与ActivityOptionsCompat一起使用,以便在可用时使用这些动画.在不存在此功能的平台版本上运行时,活动将正常启动.
另请参阅George Mount 对此StackOverflow问题的回答.
您可以查看此库以获取棒棒糖前设备的活动和片段转换
dependencies {
compile 'com.albinmathew:PreLollipopTransition:1.1.2'
}
Run Code Online (Sandbox Code Playgroud)
https://github.com/albinmathew/PreLollipopTransition
归档时间: |
|
查看次数: |
17957 次 |
最近记录: |