【问题标题】:Delete android window after timeout超时后删除android窗口
【发布时间】:2013-11-07 22:08:13
【问题描述】:

我正在查看WindowManager's API,但我找不到让窗口在一段时间后消失的方法。我想要的功能是最初使窗口弹出,等到超时,然后自行消失/删除。

【问题讨论】:

  • 来自什么?活动?
  • 在设置 LayoutParams 并调用 .addView(view, param) 后从 WindowManager。
  • 所以您只是想删除之前添加的视图?
  • 超时后我希望删除视图,是的。我还希望视图是注册事件,因此超时不应干扰它,但这更多是我最初问题的一个方面。

标签: android window timeout


【解决方案1】:

ViewManager.removeView(View v)

【讨论】:

  • 问题是答案吗? ;)
  • 我不知道为什么这个答案被否决了。它有些不完整,但确实为我想去的地方增加了一些方向。如果它的原因是它被表述为一个问题,请尝试编辑答案而不是投反对票,因为这就是它存在的原因。这个答案实际上对我有所帮助。
  • 几个月前我试图参与堆栈溢出,但无济于事,而且我似乎也没有一个好的开始。
  • 查找一堆热门问题/答案以帮助您进行格式化。
【解决方案2】:

试试看:

   new Handler().postDelayed(new Runnable(){
            public void run() {
                yourParentView.removeView(childView);
            }
        }, TIME);

【讨论】:

    【解决方案3】:

    尝试添加并使用此方法:

    /**
     * Simple method that will take any view class and remove it from it's parent
     * @param viewToRemove the view you want to remove from its parent
     */
    private void removeViewFromItsParent(View viewToRemove){
        if (viewToRemove == null || viewToRemove.getParent() == null){
            Log.w("tag", "view or parent is null, no-operation");
            return;
        }
        ViewGroup viewGroupParent = (ViewGroup) viewToRemove.getParent();
        viewGroupParent.removeView(viewToRemove);
    }
    

    类似:removeViewFromItsParent(view);

    这里有更多关于 ViewGroup 的信息,包括它的子类和你可以使用的方法(有一些 remove 调用做的事情略有不同):http://developer.android.com/reference/android/view/ViewGroup.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      相关资源
      最近更新 更多