I was going through Lars Vogel's tutorial on using Fragments and I came across the following code:
android:layout_marginTop="?android:attr/actionBarSize"
I am not sure what ?android:attr means, especially the question mark.
I was going through Lars Vogel's tutorial on using Fragments and I came across the following code:
android:layout_marginTop="?android:attr/actionBarSize"
I am not sure what ?android:attr means, especially the question mark.
android:attr
is an attribute.
In specific,
android:layout_marginTop="?android:attr/actionBarSize"
means: "the size (height) of the action bar".
? is a special character that means it's an Android internal feature.
Instead of write Numerical number in value of android:layout_marginTop , you can use the height specified by  actionBarSize  like  an Example in  Android Training .
You can use  ?android:attr or ?attr [ in case support library ] If you need to use any android attributes[ attr ] can be found in R.attr
For More Description about ?android:attr Question 1 ,Question 2
While building android apps, one requires  to know the properties of the Android client. Such as screen size etc. One such method is by using android:attr which is android attributes. Here you have mentioned to return a specific attribute by mentioning the keyword after / symbol. Here the keyword is actionBarSize.
The ? symbol is an operator which is used to access system configurations and properties in Android