Android:手机操作栏

发布于 2024-11-11 15:56:42 字数 1767 浏览 3 评论 0原文

我试图从 Google I/O 2011 应用中提取操作栏,但我似乎无法弄清楚他们如何设置栏上的标题和按钮。基本上我无法弄清楚 是如何工作的。

声明了这一点

  <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>

所以在 attr.xml 中,他们在 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 的作用是什么?代码> 做什么?

I was trying to extract the action bar from the Google I/O 2011 app, but I cannot seem to figure out how they set the title and buttons on the bar. Basically I couldn't figure out how the <declare-stylable> worked.

So in the attr.xml, they have declared this

  <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>

In 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>

And I guess I should be using this code to add the logo to the bar,

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

But nothing happens. I know I have missed out something while copy/pasting :D but I cannot figure out what!..

Also what is the use of declare-stylable an what does the format=reference do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

有木有妳兜一样 2024-11-18 15:56:42

首先,您可能想要使用已经是可重用组件的东西

declare-stylable有什么用

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

format=reference 的作用是什么

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

First, you might want to use something that is already a reusable component.

what is the use of declare-stylable

That is used by custom Views to declare custom attributes that you can supply in your layouts.

what does the format=reference do

That indicates that the custom attribute takes, as a value, a reference to a resource. In this case, it would appear to be references to style resources.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文