Подтвердить что ты не робот

Меню параметров не отображается в ICS с использованием библиотеки совместимости

Я не могу получить меню опций для показа в фрагменте в ICS в проекте, который использует библиотеку android-support-v4.jar. Я тестирую трубку Galaxy Nexus.

Мы не используем панель действий, и приложение должно быть совместимо с 2.2+. Мы не видим каких-либо вариантов меню в действии в ICS (FragmentActivity не поддерживает onCreateOptionsMenu)

Я могу получить меню, работающие в предыдущей версии Android. У меня есть все правильные рамки для включения меню опций (как показано ниже), но в ICS ничего не отображается. При переходе через код onCreateOptionsMenu не вызывается. Может ли кто-нибудь предложить исправление?

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

public class SuperFragment extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.display_options_actions, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
            case R.id.menu_sign_in:
                break;
            case R.id.menu_sign_out:
                break;
        }
        return true;
    }
    // ...
}

Целевая версия ОС в файле манифеста:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14"/>
4b9b3361

Ответ 1

Удаление android:targetSdkVersion="14" из манифеста снова активирует кнопку меню параметров.

Это связано с тем, что у меня была тема @android:style/Theme.Black.NoTitleBar, указанная в моем манифесте, - с андроидом: targetSdkVersion 14, меню параметров вставляется в меню панели действий, в отличие от кнопки меню параметров в кнопке в нижней части экрана, а тема удаляет название действия и панель действий.

Панель действий может быть удалена, хотя я не уверен, что это исправит проблему, поскольку я еще не получил ее работу так что он совместим с версиями 2.2 - 4.

Ответ 2

Просто измените android: targetSdkVersion от "14" до "10" (меньше 11), и эта проблема будет решена.

<uses-sdk android:minSdkVersion="3" 
      android:targetSdkVersion="10" />

Ответ 3

В соответствии с Android CDD отключением нового поведения, не отображающим меню опций, является targetSdkVersion > 10. Вашими параметрами являются либо запуск приложения в унаследованном режиме с помощью targetSdkVersion <= 10, либо адаптация приложения к новому (например, добавьте кнопку меню в приложение или используйте панель действий). Обратите внимание, что вам не нужно увеличивать целевую версию сборки (свойства проекта в eclipse), чтобы увеличить targetSdkVersion.