标签: layout-animation

如何在设置视图的alpha之前创建1秒的延迟?

在我的应用程序中,我将在一个动画后设置alpha.如:

hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
 menuLayout.startAnimation(hideMenu);
 menuLayout.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

但是我想在Alpha设置View之前设置1秒的延迟.因为我无法看到该布局的动画.那怎么可能呢?

谢谢.

xml animation android android-animation layout-animation

36
推荐指数
5
解决办法
5万
查看次数

使用java代码更改animateLayoutChanges属性

我正在研究一个使用布局更改动画的Android应用程序.我想知道的是,有没有人知道如何使用java代码更改"andorid:animateLayoutChanges"proberty.

我目前的价值是

android:animateLayoutChanges="false"
Run Code Online (Sandbox Code Playgroud)

我想在活动onResume()方法中将其更改为"true".

java android layout-animation

21
推荐指数
1
解决办法
7938
查看次数

从右到左查看动画android

我无法为膨胀的布局添加视图动画.我使用了以下代码片段

pageView.startAnimation(AnimationUtils.loadAnimation(this,R.anim.right_to_left_anim.xml));
Run Code Online (Sandbox Code Playgroud)

和xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
         android:shareInterpolator="false">
     <translate android:fromXDelta="0%" android:toXDelta="100%"
          android:fromYDelta="0%" android:toYDelta="0%"
         android:duration="700"/>

</set>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

谢谢.

animation android layout-animation

17
推荐指数
1
解决办法
3万
查看次数

如何将android布局动画仅应用于某个索引以上的孩子?

我有一个包含一系列笔记的ListView.

目前我使用布局动画在列表首次加载时从侧面滑动所有笔记; 这很完美.

但是,我试图弄清楚如何仅应用布局动画来列出某个点以下的项目.假设我删除了列表中的项目:我希望它下面的所有项目都转移到已删除的笔记的旧位置.

我试图找到一种方法来通过子索引自定义动画延迟或插值器,但没有找到适合此位置的任何内容.有没有办法使用自定义布局动画(例如扩展LayoutAnimationController)或者我必须执行此低级别并单独为每个视图设置动画?

有什么建议?

animation android listview android-listview layout-animation

14
推荐指数
1
解决办法
4841
查看次数

如何在RecyclerView中使用GridLayoutAnimation?

我正在尝试用新的RecyclerView(使用GridLayoutManager)替换我的GridView,但似乎它不能很好地处理gridLayoutAnimation(ClassCastException: LayoutAnimationController$AnimationParameters cannot be cast to GridLayoutAnimationController$AnimationParameters).它适用于常规布局动画,但因为它是一个网格,所以在平板电脑上完成需要很长时间.

我想要完成的是类似于Hierarchical Timing.如果您查看示例视频,它会显示布局动画从左上角到右下角.常规布局动画将逐行执行动画,因此在更大的网格(例如平板电脑)上花费太多时间来完成.我也尝试过探索ItemAnimator,但这只会像在"不要"的例子中那样同时在所有单元格上运行动画.

有没有办法在RecyclerView中完成此网格布局动画?

这是gridview_layout_animation.xml:

<!-- replace gridLayoutAnimation with layoutAnimation and -->
<!-- replace column- and rowDelay with delay for RecyclerView -->

<gridLayoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
    android:columnDelay="15%"
    android:rowDelay="15%"
    android:animation="@anim/grow_in"
    android:animationOrder="normal"
    android:direction="top_to_bottom|left_to_right"
    android:interpolator="@android:interpolator/linear"
/>
Run Code Online (Sandbox Code Playgroud)

这是动画grow_in.xml:

<set android:shareInterpolator="false"
 xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:interpolator="@android:interpolator/decelerate_quint"
        android:fromXScale="0.0"
        android:toXScale="1.0"
        android:fromYScale="0.0"
        android:toYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillAfter="true"
        android:duration="400"
        android:startOffset="200"
    />
</set>
Run Code Online (Sandbox Code Playgroud)

编辑:基于Galaxas0的答案,是一个解决方案,只需要您使用扩展的自定义视图RecyclerView.基本上只覆盖attachLayoutAnimationParameters()方法.这<gridLayoutAnimation>与GridView一样.

public class GridRecyclerView extends RecyclerView {

    public GridRecyclerView(Context context) {
        super(context);
    } …
Run Code Online (Sandbox Code Playgroud)

android layout-animation android-recyclerview

9
推荐指数
1
解决办法
6431
查看次数

如何缩放View/ViewGroup - 以适当的方式设置动画布局?

简而言之,我想缩放视图 - 就像Android Market一样,当你单击"更多"按钮时,在例如'描述'上.
我弄清楚,Android Market具有以下结构的布局:

    <FrameLayout
    android:id="@+id/artists_frame"
    android:layout_width="fill_parent"
    android:layout_height="64dip"
    android:layout_below="@id/something1"
    android:layout_above="@id/something2"

    >

<!-- Some view there, which height >> 64dip -->

    </FrameLayout>
Run Code Online (Sandbox Code Playgroud)

所以,我在FrameLayout(via view.setAnimation(), view.setLayoutAnimation()ScaleAnimation)上尝试了各种动画/ LayoutAnimations ,但效果总是一样的:视图动画,但是缩放后的真实layout_height仍然是相同的(所以其他视图的位置,那个取决于给定的FrameLayout,保持不变).

之后,我想 - 我在循环中更改了给定FrameLayout的layout_height:

layoutParams = view.getLayoutParams()
layoutParams.height = scaleTo;
layout.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)

我有它的动画,市场般的观点,但成本(性能!!!)是高...

因此,问题是:是否有任何其他适当的方法来缩放(例如将高度从50dip更改为200dip)给定的View/ViewGroup,以便动画视图下方的视图位置也发生变化?

animation android android-layout layout-animation

7
推荐指数
1
解决办法
5479
查看次数

Android Listview没有更新

我有一个带有自定义适配器的ListView,显示来自数据库的信息.当我启动应用程序时,数据将从数据库中读取,并提供给适配器,然后将适配器附加到ListView.在ListView上运行LayoutAnimationController,平滑地显示内容.

    this._lvList = (ListView)_v.findViewById(R.id.lvList);
    this._lvList.setAdapter(new TableAdapter(getActivity(),R.layout.tablerow,Category.getCategories()));
    LayoutAnimationController lac = new LayoutAnimationController(AnimationUtils.loadAnimation(getActivity(), R.anim.slide_in_left));
    lac.setDelay(0.2f);
    this._lvList.setLayoutAnimation(lac);       
    this._lvList.startLayoutAnimation();
Run Code Online (Sandbox Code Playgroud)

没问题.

现在,当我单击ListView的任何条目时,未单击的条目将消失,单击的条目将成为列表中唯一的条目,并按预期显示在顶部.

View v;
for(int i = 0;i<_lvList.getChildCount();i++) {
    v = this._lvList.getChildAt(i);
    if(v!=clickedView) {
           Animation animSlideOut = AnimationUtils.loadAnimation(getActivity(), i%2==0?R.anim.slide_out_left:R.anim.slide_out_right);
           animSlideOut.setStartOffset(i*50);

           // some more stuff

    }
    v.startAnimation(animSlideOut);
}
Run Code Online (Sandbox Code Playgroud)

这也有效,但现在问题是,如果我再次单击该单个列表条目,我希望列表重新填充,再次显示所有项目.

我认为我可以从一开始就使用代码(第一个代码段),因为它在启动应用程序时工作正常,但是......这次......它没有.没有动画发生.原因是,我的ListView中没有动画视图(除了上一步中的动画).

而不是创建一个新的Tableadapter我已经尝试清除它,填写新的,称为notifyDataSetChanged()...没有用,因为

_lvList.getChildCount();
Run Code Online (Sandbox Code Playgroud)

stills返回1个视图,而适配器包含所有18个条目.我也试过了

requestLayout();
forceLayout();
invalidate();
invalidateViews();
Run Code Online (Sandbox Code Playgroud)

强制ListView在动画之前生成其子视图,但它不起作用.因此,在我调用布局动画之后,ListView会立即出现.

简介:我的ListView在布局动画开始之前不包含子视图,如何强制它生成它们?

Thx提前:)

android android-listview layout-animation

7
推荐指数
1
解决办法
3577
查看次数

React Native - LayoutAnimation:如何使它成为组件内的动画对象,而不是整个组件/视图?

我正在尝试按照这个例子(这里是代码)并在我的RN项目中使用LayoutAnimation(与该示例的不同之处在于我只想渲染我的圈子而没有按下按钮).

但是当我添加了LayoutAnimation时,它就是整个视图/屏幕/组件,它可以完成"弹入"的动画,而不仅仅是我想要的圆圈.我必须在哪里移动LayoutAnimation才能实现动画的圆形对象?

再次注意:Heed bennygenel建议制作一个单独的Circles组件然后在Favorites上,有一个componentDidMount会逐个添加每个Cricle组件,导致个别动画,因为状态会随着时间延迟而更新.但是我仍然没有逐一获得圆形渲染/动画的预期效果......

class Circle extends Component {
  componentWillMount() {
    LayoutAnimation.configureNext(LayoutAnimation.Presets.spring);
  }

  render() {
    return (
        <View>
          { this.props.children }
        </View>
    );
  }
}

class Favorites extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      circleCount: 0
    }
  }
  componentDidMount() {
    for(let i = 0; i <= this.props.screenProps.appstate.length; i++) {
      setTimeout(() => {
        this.addCircle();
      }, (i*500));
    }
  }
  addCircle = () => {
    this.setState((prevState) => ({circleCount: prevState.circleCount …
Run Code Online (Sandbox Code Playgroud)

javascript layout-animation reactjs react-native

7
推荐指数
1
解决办法
3404
查看次数

React Native:如何有选择地启用LayoutAnimation

我想为某些组件启用布局动画,但是一旦激活它,所有正在渲染的组件都会受到布局动画的影响。例如,我有

<container>
  <waterfall/>
  <menu/>
</container>
Run Code Online (Sandbox Code Playgroud)

我只希望对组件菜单使用布局动画,但是该动画将应用于已经具有自己的动画代码的瀑布渲染。

通过本机反应可能吗?

layout layout-animation react-native

6
推荐指数
1
解决办法
1393
查看次数

LayoutAnimation 在任何情况下都可以工作吗?

LayoutAnimation 是 React Native 的一部分,它在渲染视图时自动为组件设置动画。

官方文档在这里:

https://reactnative.dev/docs/layoutanimation

但是,文档中的示例不起作用。示例中应该设置动画的对象只是从起始位置跳到结束位置。

这是文档中似乎没有动画的 Snacks 之一的示例:

https://snack.expo.io/91MUQd5IH

这将导致人们得出结论,该 API 只是不受支持或不再起作用。

是不是 Layout Animation 就不起作用了?或者,如果它在某些情况下确实有效,请分享一个包含工作 Snack / Gist 的链接,其中包含一个非常简单但有效的 LayoutAnimation 示例。

更新:LayoutAnimation 可能不支持 web。有没有人对此有任何了解,或者谁能向读者介绍文档中的解释?

layout-animation reactjs react-native

6
推荐指数
1
解决办法
289
查看次数