在制作“下拉菜单”动画时遇到问题

发布于 2024-10-28 01:26:29 字数 376 浏览 0 评论 0原文

我有一个 LinearLayout,其中包含另外两个垂直方向的 LinearLayout。

顶部内部LinearLayout始终可见;底部内部 LinearLayout 有时是可见的。

顶部内部 LinearLayout 上有一个视图,用户可以按下以显示底部 LinearLayout。但是,我希望底部 LinearLayout 从顶部 LinearLayout 中“下拉”。

我在做这件事时遇到了一些真正的麻烦。理想情况下,我想让它看起来像是从顶部 LinearLayout 下掉出来的(这意味着不仅 LinearLayout 的底部从顶部滑出,而且所有控件也似乎都从顶部滑出),但我甚至无法让 LinearLayout 的尺寸进行动画处理(阅读:增长)。

有什么建议吗?

I have a LinearLayout that contains two other LinearLayouts, oriented vertically.

The top inner LinearLayout is always visible; the bottom inner LinearLayout is sometimes visible.

There a view on the top inner LinearLayout the user can press to make the bottom LinearLayout show. However, I would like the bottom LinearLayout to "drop down" out of the top LinearLayout.

I'm having some real trouble doing this. Ideally, I'd like to make it look like it was dropping out from under the top LinearLayout (meaning not only does the bottom of the LinearLayout slide out from the top, but all the controls appear to as well), but I'm having trouble even getting the dimensions of the LinearLayout to animate (read: grow).

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

望笑 2024-11-04 01:26:29

我假设您正在使用动画类。您可以做的是将下拉菜单 LinearLayout 锚定到第一个的底部,在 xml 中使用 android:layout_AlignParentBottom = "true" 。然后在你的 anim 文件夹中放入类似以下内容:

<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0.0"
android:toXScale="1.0"
android:duration="whatever (in milliseconds)"
android:interpolator="@android:anim/linear_interpolator"
/>

将其命名为 dropdownanim

然后在某个时间将该动画设置为视图。

private Animation mAnimation; 

mAnimation = AnimationUtils.loadAnimation(this, R.anim.dropdownanim);
linearlayoutview.startAnimation(mAnimation); 

I'm assuming you're using the Animation class. What you could do is anchor the dropdown LinearLayout to the bottom of the first using android:layout_AlignParentBottom = "true" in your xml. Then in your anim folder put something like:

<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0.0"
android:toXScale="1.0"
android:duration="whatever (in milliseconds)"
android:interpolator="@android:anim/linear_interpolator"
/>

name it dropdownanim

Then set that animation to the view at a certain time.

private Animation mAnimation; 

mAnimation = AnimationUtils.loadAnimation(this, R.anim.dropdownanim);
linearlayoutview.startAnimation(mAnimation); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文