【问题标题】:WebView doesn't get drawn, WARN/webcore(5336): Can't get the viewWidth after the first layoutWebView 没有被绘制,WARN/webcore(5336): Can't get the viewWidth after the first layout
【发布时间】:2011-06-06 14:13:43
【问题描述】:

我的应用有一个视图,它使用以下代码以编程方式添加到活动中:

    RelativeLayout.LayoutParams layoutParams = 
        new RelativeLayout.LayoutParams(480, 75);

    RelativeLayout parent = (RelativeLayout)mMyView.getParent();
    if (parent != null) {
        parent.removeView(mMyView);
    }

    activity.addContentView(mMyView, layoutParams);`

按下返回按钮(当然调用 OnDestroy())并再次运行应用程序后,我没有看到在屏幕上绘制视图,并且在 DDMS 上尝试绘制它时收到以下警告:

WARN/webcore(5336):第一次布局后无法获取viewWidth

值得一提的是视图在这个状态下是可以正常工作的(页面资源正在加载中,根据DDMS上的日志)

同样在同一个 ContentView 中的其他“常规”视图(ImageView、TextView)画得很好。

有什么想法可以解决这个问题,或者它的根源是什么?

【问题讨论】:

  • 你用什么方法运行这段代码?不再有堆栈跟踪?

标签: android layout view webview draw


【解决方案1】:

尝试使用 parent.forceLayout() 然后调用 parent.measure()。

这会强制布局重绘自身而不考虑其他布局请求(并且不重绘父视图),然后使用当前规范重新测量它。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-15
    • 2011-12-30
    • 2022-12-30
    • 2022-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    相关资源
    最近更新 更多