“设置活动”中“向上”按钮上的无限循环 - 仅限大型平板电脑

时间:2016-05-26 19:59:53

标签: android android-layout android-fragments android-activity android-developer-api

我遇到了Android Studio生成的SettingsActivity问题。特别是按“向上”按钮会创建一个新的设置活动实例,而不是返回到父活动。这种情况仅发生在设置被拆分的大型平板电脑上 - 即设置列表左侧的标题。

以下代码由Android Studio生成:

public boolean onMenuItemSelected(int featureId, MenuItem item) {
    int id = item.getItemId();
    if (id == android.R.id.home) {
        if (!super.onMenuItemSelected(featureId, item)) {
            NavUtils.navigateUpFromSameTask(this);
        }
        return true;
    }
    return super.onMenuItemSelected(featureId, item);
}

在大型平板电脑上,onMenuItemSelected()始终返回true,因此从不调用navigateUpFromSameTask()。但是,即使强制调用navigateUpFromSameTask()也会产生相同的结果。

示例:

...
        if (!super.onMenuItemSelected(featureId, item) || 
                isXLargeTablet(this)) {
            NavUtils.navigateUpFromSameTask(this);
        }
...

似乎唯一有用的就是调用finish()。 例如:

   if (id == android.R.id.home) {
        if (isXLargeTablet(this)) {
           finish();
           return true;
        }
        if (!super.onMenuItemSelected(featureId, item)) {
            NavUtils.navigateUpFromSameTask(this);
        }
        return true;
    }

父活动的(主要活动)launchMode设置为" singleTop"在清单中。

相同的导航在小型平板电脑和手机上运行良好。

我不确定我的hacky解决方案是否足够 有没有其他方法可以解决这个问题'?

感谢。

0 个答案:

没有答案