0

嗨,我有两个 textView,我最初将其可见性设置为消失,然后进行动画处理并变为可见。现在我想再次使隐形但由于某种原因它们仍在屏幕上显示有人不知道为什么吗?

在我的 onCreate() 中,我使视图消失了

register = (TextView)findViewById(R.id.register);
        register.setVisibility(View.GONE);
        forgotpassword = (TextView)findViewById(R.id.forgotpw);
        forgotpassword.setVisibility(View.GONE); 

然后我让它可见

public void run() 
            {
               animations();
               loginForm.setVisibility(View.VISIBLE);
               register.setVisibility(View.VISIBLE);
               forgotpassword.setVisibility(View.VISIBLE);
            }

然后当用户按下按钮时,我希望文本视图变得不可见,以便它们保留其布局但它们在屏幕上保持可见

signInBtn = (Button) findViewById(R.id.signin);
        signInBtn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                signInProcess();
            }
        });


 public void signInProcess() { 

     register.setVisibility(View.INVISIBLE);
     forgotpassword.setVisibility(View.INVISIBLE);
     setuploader.setVisibility(View.VISIBLE);

}

4

1 回答 1

1

在 Android 中,当您为某些东西设置动画时,它只是在其他地方绘制。实际元素不会移动。因此,当您制作动画时,signInBtn它会在其他地方绘制,但实际按钮并未从原始位置移动。因此,当您单击按钮时,不会调用单击处理程序。

为避免在动画中设置此设置fillAfter = True,以便在动画结束时实际移动按钮。

此外,在 Android 中为视图设置动画后,请确保View.clearAnimation()在尝试更改其可见性之前调用。

于 2013-02-17T10:36:42.060 回答