Android PhoneGap插件,UI选项卡,调整WebView大小

13

我正在创建一个美味的PhoneGap插件,希望在准备就绪后能够开放。 插件大部分已经完成,我只需要一个漂亮的用户交互界面。

简而言之,我想创建一个“本地”Android工具栏组件。就像您如果使用Decaf Ninja Software的PhoneGap UIControls Tabbar库为IOS实现选项卡栏一样。

理想情况下;

  • 应该通过PhoneGap从JavaScript调用工具栏以“显示”和“隐藏”。
  • 在这些调用中,WebView appView会随着工具栏从屏幕底部出现/消失而调整大小。

我可以通过以下方式在启动时调整appView的大小;

super.init();

//re-configure appView layout
super.appView.setLayoutParams(new LinearLayout.LayoutParams(width,
height));

但是我不确定这是否是正确的方法,而且我如何在运行时执行此操作?(在应用程序启动时,Webview 应该填满整个父容器) 我假设我不能使用 XML 样式表来在运行时更改布局。 PhoneGap 库通过编程方式处理所有布局,因此我应该将 XML 排除在外。

另外,由于 appView 是受保护的,所以如果我不扩展 DroidGap,则很难对其进行操作 :(

DroidGap.class

/*  184 */     this.root = new LinearLayoutSoftKeyboardDetect(this, width, height);
/*  185 */     this.root.setOrientation(1);
/*  186 */     this.root.setBackgroundColor(-16777216);
/*  187 */     this.root.setLayoutParams(new LinearLayout.LayoutParams(-1, -1, 0.0F));

那么,

/*  208 */     this.appView = new WebView(this);
/*  209 */     this.appView.setId(100);
/*  211 */     this.appView.setLayoutParams(new LinearLayout.LayoutParams(-1, -1, 1.0F));

而且,

/*  249 */     bindBrowser(this.appView);
/*      */ 
/*  252 */     this.appView.setVisibility(4);
/*  253 */     this.root.addView(this.appView);
/*  254 */     setContentView(this.root);

有什么想法吗??

我认为这对于任何想要在PhoneGap的webview上实现本机UI控件的人都会很有用~~~

* 编辑

我能够将相对布局强制为WebView appView的父级,从而使我能够添加其他相对元素,然后控制对齐方式...

with;-(onCreate)

// Initiate appView
super.init();

setContentView(R.layout.main);

// Re-configure appView layout by adding a RelativeLayout between root view and appView
RelativeLayout view = (RelativeLayout)findViewById(R.id.phonegap_container);
html = (View)super.appView.getParent();
html.setBackgroundColor(Color.RED);
view.addView(html, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

我仍在寻找如何在我的导航栏从底部向上移动时,使appView向上动画的帮助......


1
也许你可以考虑使用FrameLayout手动定位WebView和工具栏。 - Patrick Tsai
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接