Android PhoneGap插件,UI标签栏,调整WebView大小

时间:2011-08-24 11:07:13

标签: java android plugins webview cordova

我正在创建一个美味的PhoneGap插件,希望它一旦打开就可以打开 准备好了.. 该插件大部分已完成,我只需要一个很好的UI用户 相互作用。

简而言之,我想创建一个“原生”android工具栏组件。 如果您实施PhoneGap UIControls标签栏,您将如何做 Decaf Ninja Software的IOS库。

理想情况下;

  • 应该从JavaScript通过PhoneGap调用工具栏到“show”和“hide”。
  • 在这些调用中,当工具栏从屏幕底部显示/消失时,WebView appView会调整大小

我可以在启动时使用;

调整appView的大小
super.init();

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

但我不确定这是否是正确的方法,我也能做到 这在运行时? (webview应该是应用程序启动时的fill_parent) 我假设我不能使用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“up”的帮助......

1 个答案:

答案 0 :(得分:1)

为什么不在你正在使用的app中创建一个div,它可以模仿一个滑块?

http://www.webresourcesdepot.com/sliding-top-menu-with-jquery/

或者你有理由本地做这件事吗?