2

首先,让我先说我不精通 Android APK。我的解决方案可以通过阅读在线文档来解决。我试图阅读文档并得出结论,我遗漏了一些东西。

我的目标是获取 PhoneGap 应用程序的根视图并将其放在 ViewGroup 中,并将主 Activity 设置为使用新的视图组。我这样做的原因是我可以在 web 视图之上覆盖其他视图。

当我创建 ViewGroup 时,从活动的内容视图中删除根视图,将根视图添加到 ViewGroup,然后将内容视图设置为 RootView,我得到一个空白屏幕。但是,如果我将 ImageView 添加到视图组,则图像呈现良好。这让我相信我没有对 rootview 或 webview 做一些重要的事情。

非常感谢任何建议或指导。

代码:

活动代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    ((ViewGroup)this.root.getParent()).removeView(this.root);
    this.mainView = new MainView(this.getActivity());
    this.mainView.setBackgroundColor(Color.WHITE);
    this.mainView.addView(this.root);
    this.setContentView(this.mainView);
}

主视图代码:

protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    if(this.getChildCount() == 1){
        this.getChildAt(0).layout(left, top, right, bottom);
    }
}
4

1 回答 1

0

我想到了。

使用 viewgroup 时,您必须在添加的孩子上调用 measure:

@Override
protected void onMeasure(int width, int height){
    super.onMeasure(width,height);
    if(this.getChildCount() == 1){
        this.getChildAt(0).measure(width,height);
    }
}
于 2013-01-28T17:18:37.917 回答