gpt4 book ai didi

java - 安卓 : Translation Animation is not working correctly

转载 作者:行者123 更新时间:2023-12-01 15:12:12 25 4
gpt4 key购买 nike

我是 Android 动画新手,正在尝试使用属性动画。我正在尝试使用平移 x 属性来实现滑动效果。但我没有得到我想要的结果。

我的布局是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<LinearLayout
android:id="@+id/parent"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal" >

<LinearLayout
android:id="@+id/first"
android:layout_width="320dp"
android:layout_height="200dp"
android:background="#00ff00" >
</LinearLayout>

<LinearLayout
android:id="@+id/second"
android:layout_width="320dp"
android:layout_height="200dp"
android:background="#0000ff" >
</LinearLayout>
</LinearLayout>

</LinearLayout>

根据布局。我在父线性布局中有两个水平放置的线性布局。并且仅显示第一个布局,第二个布局在屏幕外。我正在尝试为父级 x 属性设置动画,以便使用翻译我将滑动父级,第一个将隐藏,第二个将显示。以下是我的代码:

    LinearLayout parent_;
LinearLayout first_;
LinearLayout second_;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

parent_ = (LinearLayout) findViewById(R.id.parent);
first_ = (LinearLayout) parent_.findViewById(R.id.first);
second_ = (LinearLayout) parent_.findViewById(R.id.second);
}

为了模拟动画,我使用了选项菜单。

static boolean a = true;
@Override
public boolean onOptionsItemSelected(MenuItem item) {

if(a){
ObjectAnimator animate = ObjectAnimator.ofFloat(parent_, "x", -parent_.getWidth());
animate.setDuration(500);
animate.start();
animate.addListener(this);
animate.addUpdateListener(this);
a = false;
} else {
ObjectAnimator animate = ObjectAnimator.ofFloat(parent_, "x", -parent_.getWidth(), 0);
animate.setDuration(500);
animate.start();

a = true;
}
return super.onOptionsItemSelected(item);
}

当我启动应用程序时,我的应用程序如下所示:

enter image description here

动画之后应用程序看起来像这样:

enter image description here

注意:白色区域实际上是屏幕截图的一部分。背景为白色。

动画结束后,不再显示蓝色布局。它完全向左滑动并隐藏自己。并且不显示蓝色布局。我尝试在动画过程中截取屏幕截图。它看起来像这样:

enter image description here

我做错了什么???我希望我已经很好地解释了我的问题......

最佳答案

在线性布局中,如果子项没有被显示,它就不会被布局,也不会成为测量的一部分(就像它看起来的那样)。我必须使用relativelayout并将蓝色子元素隐藏在绿色子元素后面,这样它仍然是屏幕的一部分。它起作用了......

关于java - 安卓 : Translation Animation is not working correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12188640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com