Android PhoneGap Plugin, UI tabbar, resize WebView

Posted

技术标签:

【中文标题】Android PhoneGap Plugin, UI tabbar, resize WebView【英文标题】: 【发布时间】:2011-11-02 17:13:41 【问题描述】:

我正在创建一个美味的 PhoneGap 插件,希望它一旦打开就可以打开 准备好了.. 插件基本完成,我只需要一个漂亮的用户界面 互动。

简而言之,我想创建一个“原生”android 工具栏组件。 如果你实现 PhoneGap UIControls Tabbar 你会怎么做 Decaf Ninja Software 的 ios 库。

理想情况下;

应通过 PhoneGap 从 javascript 调用工具栏以“显示”和“隐藏”。 在这些调用中,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 “向上”......

【问题讨论】:

或许可以考虑使用FrameLayout手动定位WebView和工具栏。 【参考方案1】:

为什么不在你正在使用的应用程序中创建一个可以模仿滑块的div?

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

或者你有理由在本地做吗?

【讨论】:

以上是关于Android PhoneGap Plugin, UI tabbar, resize WebView的主要内容,如果未能解决你的问题,请参考以下文章

在 Chrome 浏览器、iOS 和 Android 中使用 phonegap-plugin-push?

Android PhoneGap Plugin, UI tabbar, resize WebView

cordova phonegap-plugin-push v1.x - 如何使其与 Android 8.1(API 级别 27)一起使用

phonegap-plugin-push设置启动

iOS 的 phonegap-plugin-barcodescanner(数据矩阵)问题

适用于 Android 的 Phonegap 本地通知插件