Вопрос по android – ActionBarSherlock: как получить доступ к домашней кнопке?

7

Я использую ActionBarSherlock и хочу подобную функциональность кнопки «Домой», как это известно в Картах Google.

Мне уже удалось открыть QuickAction http: //code.google.com/p/simple-quickactions) при нажатии кнопки домой с этим фрагментом кода:

<code>@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
       View anchor = findViewById(R.id.text); // how do I get the home button view here?
       quickAction.show(anchor);
       return true;
    }
    return false;
}
</code>

Однако я использую простое TextView действия в качестве привязки (R.id.text). Как мне получить представление кнопки «Домой» из панели действий там?

О, иfindViewById(android.R.id.home) илиfindViewById(item.getItemId()) оба возвращают ноль.

Ваш Ответ

1   ответ
6

потому что он существует над представлением содержимого и в оформлении окна.

Google использует настраиваемую панель действий на устройствах перед сотовой структурой, которая существует в представлении содержимого. Это то, что позволяет им сделать этот пользовательский выпадающий список. В Honeycomb и новее они используют настраиваемую версию навигации по списку на панели действий системы.

Так как вы используете ActionBarSherlock, у вас есть два варианта:

Перейдите к более новому стилю навигации и настройте встроенную навигацию по списку. Поставьте пользовательский вид навигации, который имитирует домашний вид (например, в нем есть значок вашего приложения). С помощью этого пользовательского представления вы сможете указать привязку, к которой может быть прикреплено пользовательское всплывающее меню.
hello @JakeWharton, мы можем использоватьfindViewById(R.id.abs__home); чтобы получить значок дома? А у моего приложения minSdk 10 Mr Roshan Pawar
С # 1 вам нужно только предоставить пользовательские макеты для адаптера (как для выбранного, так и для раскрывающегося списка), которые используются для навигации по списку. Вы можете посмотреть на приложения на ICS, такие как Карты или приложение Календарь, чтобы узнать, насколько это настраиваемо. И для # 2, да, вам придется отключить обычный домашний элемент, поскольку ваш полностью заменит его. Jake Wharton
Спасибо, Джейк, проясни это. Еще два вопроса, чтобы понять, правильно ли я понял: 1. если я выберу вариант 1, мне придется настроить навигацию по списку внутри библиотеки ActionBarSherlock, верно? 2. Вариант 2 означает, что мне нужно отключить кнопку «Домой» и добавить свой собственный вид? Konsumierer

Похожие вопросы