
我正在尝试在两个活动之间声明过渡动画 – 主要和细节. Master是带有图像的RecyclerVIEw列表,详细信息是linearLayout,带有来自父列表的标题图像.转换以XML格式声明并绑定到详细活动,如下所示:
<item name="androID:windowsharedElementEnterTransition">@Transition/activity_enter_shared</item><item name="androID:windowEnterTransition">@Transition/activity_enter</item>
在RecyclerVIEw的适配器转换中,如下所示:
final ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation( mContext,imgVIEw,VIEwCompat.getTransitionname(imgVIEw));mContext.startActivity(new Intent(mContext,ChildActivity.class),options.toBundle());
问题是:
在@ Transition / activity_enter中,我正在对某些布局元素(例如后退按钮)应用淡入淡出.这些元素放在FrameLayout上的图像上.这似乎导致了淡入淡出视图的问题,而不是平滑地出现在屏幕上,“d出”.这仅在视图重叠时发生 – 如果放置在linearLayout中,则每个事件都按预期工作.
fade在@ Transition / activity_enter中声明如下:
<fade androID:startDelay="300" androID:duration="100" androID:interpolator="@androID:interpolator/linear"> <targets> <target androID:targetID="@ID/target_ID" /> </targets></fade>
注1 – 如果在Activity fade中以编程方式触发工作正常:
final VIEwGroup frame = (VIEwGroup) findVIEwByID(R.ID.frame);frame.setonClickListener(new VIEw.OnClickListener() { boolean visible; @OverrIDe public voID onClick(VIEw v) { TransitionManager.beginDelayedTransition(frame); visible = !visible; frame.findVIEwByID(R.ID.target_ID).setVisibility(visible ? VIEw.VISIBLE : VIEw.GONE); }}); 注2 – 共享转换(@ Transition / activity_enter_shared)是自定义的,但是,使用默认转换不能解决问题.
注3 – 最简单的布局如下:
<FrameLayout> <ImageVIEw /> <Imagebutton androID:ID="@+ID/target_ID" /></FrameLayout/>
但问题不是特定于FrameLayout而是特定于视图的重叠.
注4 – 例如,在以下布局中,Lorem将d出,而ipsum将淡入.
解决方法 好吧,我为那些感兴趣的人找到了答案.我必须设置
<item name="androID:windowsharedElementsUSEOverlay">false</item>
在我的风格定义中.
从documentation开始:
总结Indicates whether or not shared elements should use an overlay during Transitions. The default value is true.
以上是内存溢出为你收集整理的Android的活动输入转换在重叠视图上无法正常工作全部内容,希望文章能够帮你解决Android的活动输入转换在重叠视图上无法正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)