2011-08-24 10 views
13

Estoy creando un sabroso complemento PhoneGap que se abrirá con suerte una vez que está listo .. El plugin está terminada en su mayoría, sólo necesito una interfaz de usuario agradable para el usuario interacción.Android PhoneGap Plugin, barra de pestañas interfaz de usuario, cambiar el tamaño WebView

En resumen, quiero crear un componente de la barra de herramientas android "nativo". Mucho cómo lo harías si implementaras la biblioteca PhoneGap UIControls Tabbar para iOS por Decaf Ninja Software.

Idealmente;

  • La barra de herramientas debe llamarse desde JavaScript a través de PhoneGap para "mostrar" y "ocultar".
  • En estas llamadas, la aplicación WebView View se cambia de tamaño cuando la barra de herramientas aparece/desaparece desde la parte inferior de la pantalla.

Puedo cambiar el tamaño de la appView en el inicio con;

super.init(); 

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

Pero no estoy seguro de si este es el enfoque correcto, también, cómo puedo hacer esto en tiempo de ejecución? (la vista web debe ser fill_parent al inicio de la aplicación) Supongo que no puedo usar hojas XML para cambiar el diseño a mediados de runtime. La biblioteca PhoneGap maneja todo el diseño mediante programación, por lo que I probablemente debería dejar XML fuera de él.

también como el APPVIEW está protegido es muy difícil jugar con esto a menos que no estoy extendiendo DroidGap en mi actividad :(

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)); 

entonces,

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

y,

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

¿Alguna idea?

Creo que esto sería útil para cualquier persona que quiera implementar controles de interfaz de usuario nativos en la parte superior de la vista web de PhoneGap ~~~~

* EDITAR

pude forzar una disposición relativa al padre de la vista Web APPVIEW que me permitió añadir otros elementos relativos que luego puede controlar la alineación ...

con; - (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)); 

Todavía estoy buscando un poco de ayuda en la animación de la APPVIEW "arriba" cuando mi barra de navegación anima desde el fondo ......

+1

Quizás pueda considerar el uso de FrameLayout para posicionar WebView y la barra de herramientas manualmente. –

Respuesta

Cuestiones relacionadas