【问题标题】:Android: Action bar for phonesAndroid:手机操作栏
【发布时间】:2011-05-30 11:17:16
【问题描述】:

我试图从Google I/O 2011 app 中提取操作栏,但我似乎无法弄清楚他们如何设置栏上的标题和按钮。基本上我无法弄清楚<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 有什么作用?

【问题讨论】:

    标签: android attributes styles android-actionbar


    【解决方案1】:

    首先,您可能想使用something that is already a reusable component

    declare-stylable 有什么用

    自定义视图使用它来声明您可以在布局中提供的自定义属性。

    format=reference 有什么作用

    这表示自定义属性将资源引用作为值。在这种情况下,它似乎是对样式资源的引用。

    【讨论】:

    • 谢谢你,完美无缺。但是你能否解释一下谷歌是如何做到的?只是好奇。我发现他们的操作栏布局没有预定义整个布局。
    • 嗨,你知道他们这样做了吗?我有同样的问题。我用 TextView 试过了,也没有样式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多