1

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ですか?

4

1 に答える 1

0

まず、すでに再利用可能なコンポーネントであるものを使用することをお勧めします。

宣言スタイラブルの使用は何ですか

これは、カスタムビューで使用され、レイアウトで指定できるカスタム属性を宣言します。

format=referenceは何をしますか

これは、カスタム属性が値としてリソースへの参照を受け取ることを示しています。この場合、スタイルリソースへの参照であるように見えます。

于 2011-05-30T14:00:02.827 に答える