Android PhoneGap с собственными элементами управления - PullRequest
5 голосов
/ 06 сентября 2011

Я пытаюсь создать приложение для Android с PhoneGap.

Мне нужно иметь возможность использовать PhoneGap WebView (super.appView) и всю его магию javascript, но мне также нужно отобразить некоторые собственные элементы управления пользовательским интерфейсом вокруг WebView.

Этот пост частично посвящен предоставлению решения. Плагин Android PhoneGap, панель вкладок пользовательского интерфейса, изменение размера WebView

Кому-нибудь удалось реализовать PhoneGap с собственным пользовательским интерфейсом?

Я также буду использовать GestureOverlayView, но это уже другая история;)

Ответы [ 3 ]

12 голосов
/ 08 сентября 2011

Ответ:

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

Я бы с трудом рассказал вам, как это работает, все, что я могу вам сказать, это то, что это работает, и это все моя собственная работа.

Настройка представлениядругой цвет может помочь вам увидеть, что происходит тоже ....

view.setBackgroundColor(Color.BLUE);

Работа с PhoneGap-1.0.0.jar последней версии на данный момент.

8 голосов
/ 03 апреля 2012

Более чистый подход:

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 голосов
/ 07 ноября 2013

Да, вы можете встроить собственные элементы управления в HTML с помощью плагина.

Вызовите собственный метод, который содержит ваше собственное представление со страницы HTML, с помощью плагина.

например. window.plugins.anatomyPlugin.showAudio();

Я использую это для отображения дизайна аудиоплеера на родном языке.

Это руководство от PhoneGap может быть полезным.

...