我正在使用带有三个tab的tab主机。在第一个选项卡中,我在画布上进行一些位图操作(位重)。每当我移动到第二个或第三个选项卡时,选项卡中的活动变为空白。我在选项卡1中有一个编辑文本,因此当弹出软键盘时,其余选项卡工作正常。我认为这是因为当软键盘弹出时,窗口会重新调整大小。我想如果我能够重新调整大小或刷新标签1,我将能够在标签的其余部分正确地看到内容。我有什么方法可以重新调整大小当前窗口或刷新窗口。我尝试使用LayoutParams设置宽度和高度,但它实际上没有调整大小。当我更改方向时,选项卡开始正常工作可能是因为整个选项卡主机正在重新创建。 有没有人遇到类似的问题?
任何帮助将不胜感激。
答案 0 :(得分:3)
您可以使用FLAG_ACTIVITY_CLEAR_TOP
选项在选项卡选项中自动刷新选项卡内容。因此,当您创建选项卡时,只需将其添加到Tab规范中。
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("myTabName")
.setContent(new Intent(this, MyTabContent.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
答案 1 :(得分:0)
如果您在选项卡内的活动中使用画布,请确保在重新创建视图时您的尺寸始终正确 - 首先记录值并观察宽度和高度获取新值的位置和时间。最常见的错误点是onDraw和onMeasure