- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 AppBarLayout 中使用 android:animateLayoutChanges="true" 使我的 TabLayout 动画化。但是当我设置 TabLayout.setVisibility(View.GONE) 时,我的 fragment 的容器会立即上升到 ActionBar 几毫秒。然后它返回到 TabLayout 的末尾,并随着它向上移动到 ActionBar。我在下面的 gif 中解释了这一点。
Theory 和 Practice 按钮出于某种原因在 TabLayout 后面,但是当隐藏 TabLayout 动画启动时,FrameContainer 会保持我的 View 坚持TabLayout 的底部。
我录制了一段演示此行为的视频。 Dropbox 视频播放器跳过一些帧,动画看起来不错。这就是为什么要注意到这个错误,您可以在计算机上加载视频并以高质量观看 5 秒和 11 秒。 Video
我的 LayoutXML:
<android.support.design.widget.CoordinatorLayout
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:orientation="vertical">
<SurfaceView
android:layout_width="0px"
android:layout_height="0px"/>
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:visibility="gone"
app:tabGravity="fill"
app:tabIndicatorColor="@android:color/white"
app:tabMode="fixed"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!--
This FrameLayout holds my fragments.
-->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/outer_background">
<ProgressBar
android:id="@+id/main_load_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"/>
</FrameLayout>
<include
android:id="@+id/left_drawer_full"
layout="@layout/navigation_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"/>
</android.support.v4.widget.DrawerLayout>
</android.support.design.widget.CoordinatorLayout>
此外,我正在使用 23.2.1 支持库。
如何解决此闪烁和跳跃问题?
最佳答案
尝试将 android:animateLayoutChanges="true"
添加到您的 View 中
app:layout_behavior="@string/appbar_scrolling_view_behavior
这就是您的 DrawerLayout。然后在其上启用过渡类型 LayoutTransition.CHANGING
,如下所示:
ViewGroup layout = (ViewGroup) findViewById(R.id. drawer_layout);
LayoutTransition layoutTransition = layout.getLayoutTransition();
layoutTransition.enableTransitionType(LayoutTransition.CHANGING);
关于android - View 立即跳跃和闪烁,虽然 animateLayoutChanges ="true",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36189534/
我有一个嵌套布局,如下所示: ... ... 我现在遇到的问题是,由于我的所有
我通过向 XML 添加 animateLayoutChanges 来利用 LinearLayout 的自动(内置)动画。 效果很好。 但是,当我将 Animation.AnimationListene
我在我的代码中设置了 animateLayoutChanges=true 来为我的 fragment 中的选项项目设置动画。 当我打开 PreferenceFragment 时,我启用向上导航图标,然
listView 是一个 ViewGroup,似乎是进行动 Canvas 局更改的理想选择。但是,它似乎无视标志或手动构建 LayoutTransition 并以这种方式进行设置。是什么赋予了?没有任
假设我有一个结构如下的布局文件: 我想动态地将文本字段添加到 Layout insertionPoint 并且我想看到它下面的元素(在本例中为 h
我有一个屏幕,其中包含 Recyclerview 和 LinearLayout 内的其他元素。问题是当我删除 RecyclerView 的项目时,animateLayoutChanges 在这种情况下
我有一个 RecyclerView,用户可以在其中选择一个项目。选择后,某些 View 在文本之前变得可见(见图)。我想为它的外观制作动画。 项目布局上的 animateLayoutChanges 属
在我的布局 XML 文件中: 当我添加一个 View 和这个布局并删除它时,我可以看到淡入和淡出效果。但是,我只需要淡入效果。谁能告诉我该怎么做? 最佳答案 您应该从布局 XML 文件中删除 ani
我正在以编程方式创建线性布局,并希望它们在可见性设置为可见/消失时淡入和淡出。 我可以设置 android:animateLayoutChanges="true" 在 xml 文件中,但由于我是以编程
我有一个 FrameLayout,我用 fragment 替换了 Activity 创建,在其中我显示和隐藏了一些布局动画更改的 View ,这很好用,但是我有一个 FloatingActionBut
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关于您编写的代码问题的问题必须在问题本身中描述具体问题 — 并且包括有效代码 以重现它。参见 SSC
我猜我忽略了一些简单的事情,但我没有看到。 我有一组从 visibility.gone 过渡到 visibility.visible 的 ImageView ,但是当我从我的代码中设置属性时, Ima
我一直在尝试在我的 Android 应用程序中使用协调器布局。我在协调器布局中有一个应用栏布局和一个嵌套 ScrollView 。在我的嵌套 ScrollView 中,我有一个线性布局,其中 anim
我已将 android:animateLayoutChanges 设置为 true 我的 LinearLayout: 然后,我运行以下命令来设置元素消失的动画。 TextView line; ..
当我将 animatedLayoutChanges="true"添加到我的父布局时,子布局的 alpha 不再起作用: // 有人知道为什么会这样吗?我该怎么办? 最佳答案
对于橙色部分,我在其 LinearLayout 上使用 android:animateLayoutChanges="true" 和 setVisibility(visible/gone) 来实现展开动
这与“以编程方式进行 animateLayoutChanges”不重复。 我想要 View 上的默认动画效果发生变化除了删除对象时的淡出效果。我无法使用 disableTransitionType()
我看到在 xml 布局中使用的这个语句会自动为您制作动画。我想将它添加到我的应用程序中,但是当我将它放入我想要的布局中时 然后我将可见性更改为消失 view.findViewById(R.id
在我的 Android 应用程序中,我在 ScrollView 中有一个表单,由通过单选按钮回答的一系列问题组成。每当用户按下单选按钮时,下一个问题就会从底部显示出来。对于新问题的动画,我使用了 xm
我想要将 ViewGroup (LinearLayout) 从“消失”设置为“可见”。 ViewGroup 包含两个元素,它们分别进行动画处理。是否可以以动画将它们视为一个元素的方式对它们进行“分组”
我是一名优秀的程序员,十分优秀!