2014-09-30 98 views
0

因此,Android布局按钮部分出现

我有一个布局活动,在这个布局中我只有一个按钮。

单击此按钮时,该活动将该按钮的可见性设置为不可见,并启动一个弹出窗口。

我实现了在这个弹出一个简单的onDismiss功能,将按钮设置为可见

pw.setOnDismissListener(new PopupWindow.OnDismissListener() { 
     @Override 
     public void onDismiss() { 
      MainActivity.packButton.setVisibility(View.VISIBLE); 
     } 
    }); 

的问题是,有时,不是很经常,在弹出窗口驳回后,该按钮被显示,但仅它的顶部,就像按钮的1/5。

  • 我怀疑这个按钮变成可见之前弹出完全驳回,并在它们之间发生某种冲突的,但在另一方面,我做了一些检查,并在弹出的窗口和按钮能够被显示同时没有问题,所以“布局冲突”不可能是重合,对吧?

回答

0

您可以添加延迟并在处理程序上运行此方法。

pw.setOnDismissListener(new PopupWindow.OnDismissListener() { 
     @Override 
     public void onDismiss() { 

      new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        MainActivity.packButton.setVisibility(View.VISIBLE); 
       } 
      }, 1000); 
     }; 
}); 
0

我会建议让按钮变量非静态,而是从您的监听器中调用您的活动的方法,并在此方法中设置按钮可见性。将该按钮作为静态变量可能意味着虽然它不为null,但在您调用set时为可见性时,该按钮不会添加到活动视图中。

+0

你的答案表明该按钮实际上可能会出现一点,然后它应该,并导致问题。但弹出关闭后出现“长”时间的按钮有什么问题? – user2162550 2014-10-01 12:32:52

+0

不,它表明您可能在绘制视图之前调用了视图方法 – Stephen 2014-10-02 13:24:01

+0

我删除了静态引用,编辑过的问题。我也尝试在主要活动中调用一个函数,不起作用。 – user2162550 2014-10-05 10:21:03