0

我又有点卡住了。这次我有一个动画按钮,动画使按钮淡入淡出。我想要实现的是,当我按下按钮时它应该消失。听起来很简单,但到目前为止我尝试过的方法不起作用,我猜这是因为按钮是动画的。

我尝试在 onClick() 监听器中设置 button.setVisibility(View.Invisible) 。我的代码如下:

动画:fade.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:fromAlpha="1.0"
       android:toAlpha="0.4"
       android:duration="1000"
       android:repeatCount="infinite"
       android:repeatMode="reverse"
        />  </set>

我在布局 xml 中声明了一个名为 buttonStartTest 的按钮,这是活动中的代码:

Button goButton = (Button) findViewById(R.id.buttonStartTest);

goButton.setVisibility(View.VISIBLE);
goButton.startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade));
goButton.setBackgroundResource(R.drawable.roundedcorners);
goButton.setText("Start");
goButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // click action here
        Button goButton = (Button) findViewById(R.id.buttonStartTest);
        goButton.setVisibility(View.INVISIBLE);
    }
});

问题是按钮并没有消失。我可以在 onClick() 中以其他方式更改它。所以我的同事编码人员,我该如何隐藏按钮?

非常爱,丹尼尔

4

3 回答 3

2

你应该做一个

goButton.clearAnimation()

在你的点击监听器中,这样当你点击它时,你会停止动画,然后你可以使用

goButton.setVisibility(View.Gone)

一劳永逸地完全隐藏它。

于 2013-09-13T15:38:11.527 回答
2

查看您的动画文件,它是无限的,因此按钮的 alpha 值将变为 1-0.4,因此您必须首先停止动画:
goButton.clearAnimation();

然后你可以隐藏你的按钮:

goButton.setVisibility(View.INVISIBLE)
于 2013-09-13T15:38:59.927 回答
1

为我试试这个,如果它有效(我认为它会),那么我会解释。

goButton.setVisibility(View.GONE);

我相信的原因是因为将其设置为不可见只会使按钮透明。您的动画将覆盖它。

由于我不在家用 PC 上,因此我没有机会亲自测试此解决方案,但这应该可以工作 - 请告诉我。

于 2013-09-13T15:34:52.530 回答