Android: панель действий для телефонов

1

Я пытался извлечь панель действий из приложения Google I/O 2011, но я не могу понять, как они устанавливают название и кнопки на панели. В принципе, я не мог понять, как работает <declare-stylable>.

Итак, в attr.xml они объявили это

  <declare-styleable name="AppTheme">
    <attr name="actionbarButtonStyle" format="reference" />
    <attr name="actionbarProgressIndicatorStyle" format="reference" />
    <attr name="actionbarSeparatorStyle" format="reference" />
    <attr name="actionbarLogoStyle" format="reference" />
    <attr name="actionbarTextStyle" format="reference" />
    <attr name="textHeaderMaxLines" format="integer" />
    <attr name="trackAbstractMaxLines" format="integer" />
</declare-styleable>

В styles.xml,

 <style name="ActionBarLogo">
    <item name="android:id">@id/actionbar_logo</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">fill_parent</item>
    <item name="android:clickable">false</item>
    <item name="android:scaleType">center</item>
    <item name="android:contentDescription">Logo</item>
    <item name="android:src">@drawable/actionbar_logo</item>
</style>

И я думаю, я должен использовать этот код, чтобы добавить логотип в панель,

ImageButton logo = new ImageButton(mActivity, null, R.attr.actionbarLogoStyle);
logo.setOnClickListener(homeClickListener);
actionBarCompat.addView(logo);

Но ничего не происходит. Я знаю, что что-то пропустил, когда копировал/вставлял: D, но я не могу понять, что!..

Также используется declare-stylable то, что делает format=reference?

Теги:
attributes
android-actionbar
styles

1 ответ

0
Лучший ответ

Во-первых, вы можете использовать то, что уже является компонентом многократного использования.

что используется declare- stylable

Это используется пользовательскими представлениями для объявления пользовательских атрибутов, которые вы можете предоставить в своих макетах.

что делает format=reference do

Это означает, что пользовательский атрибут принимает в качестве значения ссылку на ресурс. В этом случае это будет ссылка на ресурсы стиля.

  • 0
    Спасибо, это сработало безупречно. Но не могли бы вы также объяснить, как Google это сделал? Просто любопытно. Я обнаружил, что их макет панели действий не имеет предопределенного макета.
  • 0
    Привет, Ты разобрался, что они это делают? У меня такая же проблема. Я попробовал это с TextView, и это не стилизовано тоже.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню