Android 视图立即跳转并闪烁,但animateLayoutChanges=";“真的”;
我正在使用AppBarLayout中的android:animateLayoutChanges=“true”为我的表格布局设置动画。但是当我设置TabLayout.setVisibility(View.GONE)时,我的片段的容器会立即上升到ActionBar,持续几毫秒。然后它返回到TabLayout的末尾,并随之上升到操作栏。我在下面的gif中解释了这一点 由于某种原因,理论和实践按钮位于表格布局的后面,但隐藏表格布局动画时,会启动FrameContainer,用于保存我的视图的FrameContainer会粘在表格布局的底部 我录制了一段视频,演示了这种行为。Dropbox视频播放器跳过一些帧,动画看起来不错。这就是为什么,要注意这个错误,你可以在电脑上加载视频,高质量地观看5秒和11秒 我的布局xml:Android 视图立即跳转并闪烁,但animateLayoutChanges=";“真的”;,android,android-fragments,android-animation,material-design,android-appbarlayout,Android,Android Fragments,Android Animation,Material Design,Android Appbarlayout,我正在使用AppBarLayout中的android:animateLayoutChanges=“true”为我的表格布局设置动画。但是当我设置TabLayout.setVisibility(View.GONE)时,我的片段的容器会立即上升到ActionBar,持续几毫秒。然后它返回到TabLayout的末尾,并随之上升到操作栏。我在下面的gif中解释了这一点 由于某种原因,理论和实践按钮位于表格布局的后面,但隐藏表格布局动画时,会启动FrameContainer,用于保存我的视图的Frame
此外,我正在使用23.2.1支持库
我如何解决这个眨眼和跳跃问题?我浪费了一整天来调查这个问题。 我找到了一个解决这个问题的可能方法。 现在,我通过此代码更改可见性
mTabLayout.postDelayed(new Runnable() {
@Override
public void run() {
switch (newMode) {
case MODE_CONTENTS:
mTabLayout.setVisibility(mContents.isTheoryAvailable() ? View.VISIBLE : View.GONE);
break;
default:
findViewById(R.id.content_frame).setVisibility(View.INVISIBLE);
mTabLayout.setVisibility(View.GONE);
findViewById(R.id.content_frame).setVisibility(View.VISIBLE);
}
}
}, 200);
它运行良好,视图现在不会闪烁。但是在旧的androids上,该漏洞仍然存在。尝试使用将
android:animateLayoutChanges=“true”
添加到您的视图中
app:layout_behavior="@string/appbar_scrolling_view_behavior
那就是你的抽屉布局。然后启用转换类型LayoutTransition。对其进行如下更改:
ViewGroup layout = (ViewGroup) findViewById(R.id. drawer_layout);
LayoutTransition layoutTransition = layout.getLayoutTransition();
layoutTransition.enableTransitionType(LayoutTransition.CHANGING);
相关的:
ViewGroup layout = (ViewGroup) findViewById(R.id. drawer_layout);
LayoutTransition layoutTransition = layout.getLayoutTransition();
layoutTransition.enableTransitionType(LayoutTransition.CHANGING);