web-dev-qa-db-ja.com

スタイルでアプリ名前空間を使用する

その大きなポイントを実証するための例を挙げます。

アプリに多数のFloatingActionButtonsがあることを想像してください。そのため、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"
    >

これをどのように機能させることができますか?

72
Nouvel Travay

ために app: namespace指定する必要はありません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ファイルで設定する必要があります。

157
dex