1. ホーム
  2. android

[解決済み] スタイルでAppの名前空間を使用する

2022-06-21 04:36:41

質問

より大きなポイントを示すために、例を挙げたいと思います。

私のアプリに多数の FloatingActionButton があるとします。その結果、1 つのスタイルを作成し、それを再利用したいと思います。そこで、次のようにします。

<style name="FabStyle” parent ="Widget.Design.FloatingActionButton">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_margin">16dp</item>
    <item name="app:backgroundTint">@color/accent</item>
    <item name="app:layout_anchorGravity">end|bottom</item>
</style>

私が抱えている問題は、コードがコンパイルされないことです。

Error:(40, 5) No resource found that matches the given name: attr 'app:backgroundTint'.

名前空間を resources タグで名前空間を取り込もうとしましたが、うまくいきません。

<resources
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    >

これを動作させるためにどのようなアイデアがありますか?

どのように解決するのですか?

以下のような場合 app という名前空間を指定する必要はありません。 app:<property name> . ただ <property name> だけで十分です。

例えば

<style name="FabStyle" parent="Widget.Design.FloatingActionButton"> 
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_margin">16dp</item>
    <item name="backgroundTint">@color/accent</item>
    <item name="layout_anchorGravity">end|bottom</item>
</style>

そして layout_anchorGravity には、フローティング・アクション・ボタンを定義しているXMLファイルに設定する必要があります。