6

我的布局有时无法正确定位元素。我尝试了很多解决方案,但独特的工作方式是从纵向旋转到横向,然后从横向返回到纵向。然后布局会自动重绘并完美契合。我设置了方向|键盘,所以内容不会重新加载,只会重绘。如何像风景肖像一样以编程方式重绘内容?谢谢你。

编辑:我尝试了以下但没有效果

getWindow().getDecorView().findViewById(android.R.id.content).invalidate();
getWindow().getDecorView().findViewById(android.R.id.content).requestLayout();

Activity 在 onCreate 上设置了主布局setContentView(R.layout.main);

布局“main”包含 TabHost 和 Admob。布局“视图”包含一个显示在 tab1 上的 web 视图(“id:myWebview”)。

并且还试图使它们无效!webview,布局主和布局视图和崩溃

4

4 回答 4

7

你试过invalidate()视图吗?

findViewById(android.R.id.content).invalidate();

这应该重绘整个布局。

于 2012-07-05T15:58:44.507 回答
2

当屏幕方向改变时,Android 会重新创建当前的 Activity。

尝试调用measure(int, int)requestLayout()。否则就没有机会以编程方式重新布局视图。

于 2012-07-05T16:01:44.270 回答
1

仅调用requestLayout()并阅读View类描述以获取更多信息。

于 2012-07-05T16:04:59.703 回答
-1

如果这是不安全或不好的做法,请纠正我。我也尝试了所有这些方法,出于绝望决定再次尝试调用我的 onCreate 并且它起作用了。所以现在我将在onCreate(null)更新数据时使用它来刷新我的视图。再次,请让我知道这是否不安全或不好的做法,如果可能的话,还有一个可行的替代方案。

于 2015-04-10T14:31:08.033 回答