Krupal Shah
Krupal Shah

Reputation: 9187

app:something...What is app:?

I am using this famous ViewPagerIndicator library in my project. I wanted to add color on ViewPageIndicator. I found a solution from here on StackOverflow.

<com.viewpagerindicator.CirclePageIndicator
    android:id="@+id/indicator"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    app:fillColor="#FF888888"
    app:pageColor="#88FF0000"
    app:strokeColor="#FF000000" />

But one thing I can't understand here: why it is written app: instead of android:? What does app: mean? I have never used app:? What is its namespace? I googled but no solution found.

Upvotes: 0

Views: 239

Answers (2)

Inneke De Clippel
Inneke De Clippel

Reputation: 1026

For the namespace, add this: xmlns:app="http://schemas.android.com/apk/res-auto" The app namespace is used for all 'new' attributes. For example: if I make a custom view, that has its own attributes (let's say RainbowView with new attribute 'numberOfColors'), then I have to use that attribute in the app namespace because it isn't declared in the android namespace. So use the app namespace for all custom attributes. Either attrs you defined yourself, or attrs the author of a library added (in your case for CirclePageIndicator). But most of the time, when you start typing 'strokeCo...' and you see 'strokeColor' in the autocomplete list, the namespace will be added automatically when you select it.

Upvotes: 1

Wirling
Wirling

Reputation: 5395

Probably you only need to add the missing namespace:

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

Or take a look at this answer for referencing a library:

How can I set up custom namespaces in layout file in Android studio?

Upvotes: 0

Related Questions