2011-09-06 12 views
5

Sto provando a creare un'applicazione Android con PhoneGap.PhoneGap Android con controlli nativi

Devo essere in grado di utilizzare PhoneGap WebView (super.appView) e tutte le sue magie javascript ma ho anche bisogno di visualizzare alcuni controlli dell'interfaccia utente nativa attorno a WebView.

Questo post va parzialmente a fornire una soluzione Android PhoneGap Plugin, UI tabbar, resize WebView

nessuno è riuscito a implementare PhoneGap con un'interfaccia utente nativa?

sarò anche usando un GestureOverlayView ma questo è un'altra storia;)

risposta

12

Risposta:

super.onCreate(savedInstanceState); 
//creates super.appView and calls setContentView(root) in DroidGap.java 
init(); 
//just an empty LinearLayout 
layoutId = R.layout.blank; 
view = new LinearLayout(this); 
setContentView(layoutId); 
view.addView(your_component_here); 
view.addView((View) appView.getParent()); //adds the PhoneGap browser at index 1 
//accesses the browser at index 1. Tells browser to not fill view 
view.getChildAt(1).setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1)); 
setContentView(view); 

Vorrei lottare per dirvi come funziona, tutto quello che posso dirvi è che lo fa e è tutto il mio lavoro.

Impostazione della vista di un colore diverso può aiutare a vedere cosa sta succedendo troppo ....

view.setBackgroundColor(Color.BLUE); 

Lavorare con PhoneGap-1.0.0.jar l'ultima release finora.

+0

potresti inserire uno screenshot di quale sarà il risultato? – hadi

8

Un approccio più pulito:

super.onCreate(savedInstanceState); 

// Create native view with UI controls. 
View header = View.inflate(getContext(), R.layout.header, null); 

// PhoneGaps WebView is located inside a LinearLayout. 
// The protected (and therefore inherited) variable root 
// references this LinearLayout. Add your native Views 
// to this variable. 
root.addView(header); 

// Create WebView and add it automatically to the LinearLayout. 
super.loadUrl("file:///android_asset/www/index.html"); 
+0

E puoi anche aggiungere componenti nativi sotto il WebView? – Edd

+1

Sì, basta aggiungere un'altra vista dopo super.loadUrl ("file: ///android_asset/www/index.html"); con root.addView (footer); –

+0

Quale versione di PhoneGap stai usando? – Edd

0

Sì, è possibile incorporare i controlli nativi all'interno di HTML utilizzando il plug-in.

Chiama il metodo nativo che contiene la tua visualizzazione nativa dalla pagina HTML utilizzando il plugin.

ad es. window.plugins.anatomyPlugin.showAudio();

Io lo uso per mostrare il design del lettore audio in nativo.

Questo guide da PhoneGap potrebbe essere utile.

Problemi correlati