我正在创建一个美味的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向上动画的帮助......