Android планшеты и программные кнопки, меню не касается
Прежде всего.. Я довольно новичок в мире Android (я расширяюсь только с iOS-разработкой) и провел немало исследований в интернете, но я немного озадачен этим.
Мое приложение - довольно простое приложение, MainActivity состоит из MapActivity и Меню.
У меня есть следующие тестовые устройства:
- HTC One X - 4.0.4 - Аппаратное обеспечение Назад / Главная / Многозадачность - Меню программного обеспечения
- Asus Nexus 7 - 4.2.1 - Программное обеспечение Назад / Главная / Многозадачность / Меню
- Huawei Ascend G 300 - 2.3.6 - Железо Назад / На главную / Меню
Мое приложение работает нормально на всех этих устройствах, и я отправил сборку своему клиенту для проверки...
Его устройство выглядит следующим образом:
- Samsung Galaxy Tab "10 - 3.1 - Программное обеспечение Назад / Главная / Многозадачность / Меню
Похоже, что приложение прекрасно для него запускается, но как только он щелкает меню программного обеспечения (переполнение), ему открываются 3 кнопки (поиск, история и настройки), однако после нажатия нет ответа, даже не выбранное изображение для указать, что пресса принимается!
Я запускаю эмулятор Android с теми же характеристиками и могу воссоздать проблему (используя шаблон "10.1in WXGA (Tablet)"). Также, когда нажата аннотация карты, она делает то же самое и не реагирует на прикосновения...
Моя минимальная версия SDK 10 Моя версия целевого SDK 17
Я также запустил устройство 320x480 на 3.1 (с аппаратными кнопками), и не было никаких проблем (никаких проблем с касаниями в MapView), поэтому я попробовал 10-дюймовый планшет с аппаратными кнопками.
Затем я клонировал шаблон "10.1in WXGA (Tablet)" в AVD Manager и изменил программные кнопки на аппаратные, чтобы увидеть, что произошло, но он проигнорировал их и все еще представил программные кнопки.
Затем я запустил шаблон "10.1in WXGA (Tablet)" на 4.2, и он запустился точно так же, как и мой физический Nexus 7, без проблем, так что исключаются 10-дюймовые планшеты.
Это действительно оставило меня в тупике, так как у меня заканчиваются идеи о том, как решить эту проблему, поэтому я использую это как последнее средство..
Вот мое меню XML (я оставил настройки как переполнение для целей тестирования, так как я буду использовать, если комната в живой версии)
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_search"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="@string/menu_search" android:enabled="true" android:checkable="false" android:visible="true"/>
<item
android:id="@+id/menu_history"
android:orderInCategory="101"
android:showAsAction="ifRoom"
android:title="@string/menu_history" android:enabled="true" android:checkable="false" android:visible="true"/>
<item
android:id="@+id/menu_settings"
android:orderInCategory="102"
android:showAsAction="collapseActionView"
android:title="@string/menu_settings" android:enabled="true" android:checkable="false" android:visible="true"/></menu>
и вот onCreateOptionsMenu()
а также onOptionsItemSelected()
функции..
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
Log.i("NOTE","Menu Item Pressed: "+item.getItemId());
switch (item.getItemId()) {
case R.id.menu_search:
showSearch();
return true;
case R.id.menu_history:
Intent history = new Intent(this, HistoryActivity.class);
startActivityForResult(history, HISTORY_REQUEST_CODE);
return true;
default:
Intent settings = new Intent(this, SettingsActivity.class);
startActivity(settings);
return super.onOptionsItemSelected(item);
}
}
Еще одно замечание: цель создания приложений - API Google 4.2 (API 17).
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, и я предоставлю ее. Я также должен напомнить вам, что эта ошибка также влияет на выбор наложения в библиотеке PolarisMapView, поэтому она может быть не просто локализована в меню.
Другие два MenuItems, которые отображаются в ActionBar, также работают нормально... похоже, именно тогда, когда он отображается в поле переполнения... Также навигация по карте работает нормально, поэтому карта получает события касания для большинства частей.
Вот макет моей MainActivity, а также, возможно, она является относительной:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.cyrilmottier.polaris.PolarisMapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_height="fill_parent"
android:layout_width="match_parent"
android:apiKey="MY API KEY HERE" />
<RelativeLayout
android:id="@+id/adsdkContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" >
</RelativeLayout>
</RelativeLayout>
Спасибо, что читаете людей!