【问题标题】:Prevent view to be in front during animation在动画期间防止视图在前面
【发布时间】:2011-03-25 10:33:04
【问题描述】:

我有一个显示或隐藏视图的按钮。当按钮被按下时,视图被添加到布局中并开始翻译动画。第二个按钮按下将从布局中删除视图。 我使用addView(view, 0) 以确保该视图位于所有其他视图之后。它通常工作正常。

当显示视图并且我非常快速地按下按钮两次(有点双击)时,就会出现问题。在这种情况下,视图会在动画期间跳到前面。

如何防止这种情况发生?

【问题讨论】:

    标签: android android-layout android-animation


    【解决方案1】:

    只需禁用(setEnabled(false))按钮并在AnimationListener.onAniationEnd() 中启用它。

    UPD:好的,这就是代码,说明了我的想法:

        final Button btn = (Button) findViewById(R.id.myButton);
        View view = (View) findViewById(R.id.myView);
    
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                btn.setEnabled(false);
                // animation here
                addView(view, 0);
            }
        });
    
        // somewhere else
        final Button btn = (Button) findViewById(R.id.myButton);
        btn.setEnabled(true);
        removeView(view);
    

    【讨论】:

    • 隐藏视图时不使用动画。我只是使用 removeView(view) 删除它。
    • 嗯...比我无法点击它
    • 因为该按钮将被禁用。在添加视图之前我无法启用按钮。
    • 为什么不能? View view = findViewById(...); view.setEnabled(true); addView(view);
    • 哦。你说的是启用视图还是按钮?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 2011-08-06
    相关资源
    最近更新 更多