gpt4 book ai didi

android - 尝试创建循环显示时出错 : IllegalStateException: cannot start this animation on a detached view

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:32:58 27 4
gpt4 key购买 nike

因此,我正在尝试在 TextView 的 API 级别 21 上创建一个循环显示,但我一直收到此错误。起初我认为它与我正在尝试的 fragment 的生命周期有关,但后来我只是在一个 Activity 中尝试了同样的事情,但它仍然无法正常工作。

代码如下:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Window w = getWindow();
w.setFlags(
WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,
WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
w.setStatusBarColor(Color.parseColor("#0277bd"));


setContentView(R.layout.activity_main);


TextView tv = (TextView) findViewById(R.id.text);



int a = (tv.getLeft() + tv.getRight()) / 2;
int b = (tv.getTop() + tv.getBottom()) / 2;

int radius = tv.getWidth();

Animator anim = ViewAnimationUtils.createCircularReveal(tv, a, b, 0, radius);

anim.start();





}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

return super.onCreateOptionsMenu(menu);
}
}

现在还很早,所以我真的找不到任何关于这个的答案。有什么想法吗?

最佳答案

您收到错误消息是因为您传入的 View 尚未测量并显示在屏幕上。 ViewAnimationUtils.createCircularReveal 需要测量目标 View 来计算动画。您还会发现变量 ab 始终为 0。

如果您想进行试验,请创建动画并在按钮点击监听器中启动它。这是使用您的代码的示例:

Button button = (Button) findViewById(R.id.your_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView tv = (TextView) findViewById(R.id.text);

int a = (tv.getLeft() + tv.getRight()) / 2;
int b = (tv.getTop() + tv.getBottom()) / 2;

int radius = tv.getWidth();

Animator anim = ViewAnimationUtils.createCircularReveal(tv, a, b, 0, radius);

anim.start();
}
});

关于android - 尝试创建循环显示时出错 : IllegalStateException: cannot start this animation on a detached view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26475147/

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