0

我有一个 AB + 列表导航模式的活动。在我的清单文件android:configChanges="orientation|screenSize"中设置了此活动。当我从 AB 打开列表并在横向模式下旋转设备时,列表仍然可见,但现在 AB 和列表之间存在间隙(由于 AB 改变,它的高度在方向改变时)。

我该如何正确处理这种情况,或者我该如何避免呢?

对于具有 API 8+ 和 11+ 的设备,这种情况类似

肖像

肖像

和风景

景观

已编辑。我已经为 android 4.0+ w/o ABS 创建了示例项目。结果是一样的

私有 ActionBar mActionBar;私有静态字符串 [] 数组 = {"Item1","Item2","Item3","Item4","Item4"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mActionBar = getActionBar();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(mActionBar.getThemedContext(), android.R.layout.simple_spinner_item, array);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    mActionBar.setListNavigationCallbacks(adapter, new OnNavigationListener() {

        @Override
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {
            Log.d("tag", "Item position " + itemPosition);
            return true;
        }
    });
}

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.ablmtest.MainActivity"
        android:label="@string/app_name"
        android:configChanges="orientation|screenSize" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
4

0 回答 0