- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在努力解决 .onWindowFocusChanged() 没有在我的自定义 Activity 类中被调用的问题。我的设置:
TabHost 中的两个选项卡(包含 Activity_1 和 Activity_2),默认情况下选择第 2 个选项卡:
tabHost.setCurrentTab(currentTabIndex);
在这两个 Activity 中,我都添加了 onWindowFocusChanged() 覆盖(因为我需要在布局绘制完成后进行预计算):
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
super.onWindowFocusChanged(hasFocus);
}
问题:当默认选择第二个选项卡并单击第一个选项卡时,onWindowFocusChanged() 永远不会在 Activity_1(与第一个选项卡关联)中调用。这两个 Activity 都扩展了普通的 Activity 类。
任何有关如何解决此问题的线索将不胜感激!
最佳答案
如果您需要等到绘制特定 View 然后进行计算,您可以使用 viewTreeObserver 来监听布局变化并在那里进行计算。像这样使用它:
ViewTreeObserver vto = mainLayout.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
// remove the listener so it won't get called again if the view layout changes
mainLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
// add your calculations here
}}
编辑:
感谢 Edison 提供更多详细信息。
对于那些想要支持API <16的人,你可以这样做
if (Build.VERSION.SDK_INT >= 16) {
mainLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
mainLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
关于Android Activity.onWindowFocusChanged 不会从 TabHost 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11140120/
我目前通过 onWindowFocusChanged() 检查我的 Activity 的焦点是否已经改变(例如,主页按钮被按下或者它已经切换到不同的 Activity),如果有,我调用finish()
我正在尝试制作一个战斗屏幕,其中有两个 Sprite ,在它们上面有健康栏,上面写着它们的健康点(进度条上面有一个 TextView)。我还有一个AnimationDrawable。它是在 onWin
我对如何在 Activity 更改时触发事件感到困惑。我知道的一件事是使用 onWindowFocusChanged() 方法,但我不知道如何使用它。请举一个例子,即当 Activity 发生变化时,
我的问题围绕 onWindowFocusChanged 方法。我知道作为最佳实践,您应该在 onCreate 方法中膨胀您的对象。 我想知道的是:诸如 ImageViews 之类的对象在 onCrea
我需要使用方法 onWindowFocusChange() 来关闭 AlertDialog 中的系统对话框,所以我决定扩展 AlertDialog 和实现该方法。 public class MyAle
我正在尝试以编程方式设置 UI 元素。 我可以在onWindowFocusChanged 方法中设置UI 元素吗? 我想问的问题是 - 我应该在 onCreate 方法中还是在 onWindowFoc
我正在使用 Android Sliding Menu using Navigation Drawer .我知道 onWindowFocusChanged 在 MainActivity 上工作。我怎样才
我一直在努力解决 .onWindowFocusChanged() 没有在我的自定义 Activity 类中被调用的问题。我的设置: TabHost 中的两个选项卡(包含 Activity_1 和 Ac
我的游戏在设备显示屏处于锁定屏幕时播放声音时遇到问题,如讨论的那样there .由于某些原因,我不能要求用户输入来恢复游戏,所以我想捕捉 onWindowFocusChanged 事件来恢复游戏。不幸
我正在使用在对话框中嵌入 webview 的 Facebook android SDK。当我用 android 2.2 在 droid 上重新安装应用程序时,webview 第一次崩溃并提供以下堆栈跟
我已经在我的应用程序中完成了 facebook 集成,它对我来说工作正常。但是,当我单击清除凭据按钮并在此之后再次想要登录以共享内容时,应用程序崩溃并出现异常。以下是异常详细信息。我在谷歌上搜索但没有
我有一个 fragment Activity 。里面有一个 fragment 。当我单击 Activity 上的按钮时,会出现一个对话框。但是当我关闭该对话框时,我需要在 fragment 中进行一些
我是一名优秀的程序员,十分优秀!