我试图从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
做什么有什么用?
答案 0 :(得分:0)
首先,您可能希望使用something that is already a reusable component。
declare-stylable的用法是什么
自定义视图使用它来声明您可以在布局中提供的自定义属性。
format = reference做什么
这表示自定义属性采用对资源的引用作为值。在这种情况下,它似乎是对样式资源的引用。