首先..我对Android世界相当陌生(我只是从iOS开发扩展)并且在互联网上做了相当多的研究,但我有点被这个难住了..
我的应用程序是一个相当基本的应用程序,MainActivity 由一个 MapActivity 和一个 Menu..
我这里的测试设备如下:
- HTC One X - 4.0.4 - 硬件返回/主页/多任务 - 软件菜单
- Asus Nexus 7 - 4.2.1 - 软件返回/主页/多任务/菜单
- 华为 Ascend G 300 - 2.3.6 - 硬件 返回/主页/菜单
我的应用程序似乎在所有这些设备上都可以正常工作,我将构建发送给我的客户进行测试..
他的设备如下:
- 三星 Galaxy Tab "10 - 3.1 - 软件返回/主页/多任务/菜单
该应用程序似乎对他来说启动得很好,但只要他点击软件菜单(溢出),他就会看到 3 个按钮(搜索、历史记录和设置),但是一旦点击就没有响应,甚至没有选择的图像表示正在接收新闻!
我在相同的规格上运行 Android 模拟器,并且可以重新创建问题(使用“10.1in WXGA(平板电脑)”模板)。此外,当按下地图注释时,它会执行相同的操作并且不响应触摸。 ..
我的最小 SDK 版本是 10 我的目标 SDK 版本是 17
我还在 3.1 上运行了一个 320x480 设备(有硬件按钮)并且没有问题(MapView 上的触摸也没有问题)所以这让我尝试了一个带硬件按钮的 10 英寸平板电脑。
然后,我在 AVD 管理器中克隆了“10.1in WXGA(平板电脑)”模板,并将软件按钮更改为硬件,看看发生了什么,但它忽略了它们,仍然显示软件按钮..
然后我在 4.2 上运行“10.1in WXGA(平板电脑)”模板,它运行起来就像我的物理 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);
}
}
顺便说一句,应用程序构建目标是 Google APIs 4.2 (API 17)
如果您需要更多信息,请告诉我,我会提供。我还应该提醒您,此错误也会影响在 PolarisMapView 库上选择叠加层,因此它可能不仅仅是本地化到菜单。
ActionBar 中显示的其他两个 MenuItems 也可以正常工作.. 似乎只是在溢出框中显示时... 地图周围的导航也可以正常工作,因此地图的大部分部分都获得了触摸事件..
这是我的 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>
感谢阅读的人!