#android #android-layout #android-ui #android-actionbar
#android-layout #Android #android-actionbar
Вопрос:
У меня возникли небольшие проблемы с пользовательскими кнопками действий на панели действий honeycomb . Я добавляю пункт меню, который использует пользовательский макет (используя атрибут android:actionLayout). Причина пользовательского макета в том, что я хочу кнопку с двумя строками текста, которые можно динамически обновлять.
Тем не менее, я все еще хочу, чтобы эта кнопка действия работала так же, как и другие стандартные кнопки. Под этим я подразумеваю, что фон исчезает при выборе кнопки и снова исчезает, если он не выбран, все в стиле платформы (цвет, похоже, отличается на разных платформах / устройствах — я видел как серую, так и синюю версии)
Я попытался использовать стиль кнопки действия для пользовательского макета:
style="@android:style/Widget.ActionButton"
и я попытался установить фон для пользовательского макета на:
android:background="?android:attr/actionBarItemBackground"
но безрезультатно, и я как бы пробую что-то довольно случайно, поскольку не могу найти никакой документации о том, как это сделать (или, если это вообще возможно).
Я знаю, что могу сам приблизиться к этому поведению, установив фон, но было бы неплохо, если бы я мог просто настроить элемент так, чтобы он вел себя как обычная кнопка действия с точки зрения того, как он появляется, когда пользователь взаимодействует с ним.
У кого-нибудь есть идеи?
Заранее спасибо!
Ответ №1:
Ах, извините, что отвечаю на свой вопрос, но я только что наткнулся на способ сделать это. Я был на полпути — вам нужно, чтобы стиль вашего пользовательского макета наследовался от actionButton:
@android:style/Widget.ActionButton
но тогда вам также нужно сделать макет интерактивным:
android:clickable="true"
чтобы это работало. Использование обоих из них делает пользовательские кнопки действий похожими на обычные, когда вы их нажимаете.
Надеюсь, это поможет кому-то, кто пытается это сделать!
Комментарии:
1. Куда вы включаете это: @android:style / Widget. actionButton
2.
<YourLayout ... style="@android:style/Widget.ActionButton"> ... <YourLayout/>
3. Почему его программное использование не сработало для меня? Я пробовал это: ImageView syncImageView = new ImageView(getActivity(), null, android.R.стиль. Widget_ActionButton); . Я также попытался сделать его интерактивным и установить представление элемента действия как созданное мной представление: …setActionView(…) .