Динамически подключите панель действий и панель действий для планшета на совместимость с Android - PullRequest
0 голосов
/ 11 августа 2011

хорошо, должен быть чистый способ сделать это, если вы хотите поддерживать ActionBar на планшетах для приложения, которое работает на планшетах и ​​телефонах: -P

Если я захочу поместить его в свой основной класс FragmentActivity, я не смогу добавить к нему «Implements ActionTab.TabListener», потому что он потерпит неудачу, поскольку класс не найден на телефонах. В коде, который использует ActionMode, чтобы сделать контекст ActionBar чувствительным

Похоже, что Google должен был добавить фиктивные классы, которые ничего не делают, поэтому мы можем заставить его аккуратно скомпилировать / загрузить на телефоны с библиотекой совместимости: - (

Что делают все остальные, если вы хотите использовать ActionBar на планшетах Honeycomb, но также должны поддерживать телефоны? Два совершенно отдельных несколько избыточных класса, которые оба называют классом Helper с общим кодом?

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Вы не можете сделать это с помощью стандартного пакета совместимости. Попробуйте ActionBar Sherlock , он делает это автоматически для телефонов и планшетов.

0 голосов
/ 11 августа 2011

Я поместил весь свой код ActionBar в класс-оболочку ActionBarWrapper, который я использую в условном коде Honeycomb.

т.е.

if (MyApp.runningUnderHoneycomb) {
    ....
    ActionBarWrapper.doSomethingSuchAsRegisterNavigator(....)
}

, где я использую values-v11\bools.xml, чтобы установить переменную на true, которая определена как false в values\bools.xml. Затем я назначаю глобальную переменную моего приложения runningUnderHoneycomb из переменной bools.xml соответствующим образом. Этот подход работает для меня.

...