2

首先..我对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>

感谢阅读的人!

4

0 回答 0