Is deprecated word the only difference between fill_parent and match_parent
I found that both fill_parent
and match_parent
means the same thing
- fill_parent means that the view wants to be as big as its parent, minus the parent's padding, if any.
- match_parent means that the view wants to be as big as its parent, minus the parent's padding, if any.
The only difference that I found is that fill_parent
is deprecated starting from API Level 8 and is replaced by match_parent
However, I didn't notice any difference between these two. If both are the same then, why is fill_parent
deprecated. Can anyone explain any differences between these two except for the fact that one is deprecated and the other isn't?
I have gone through http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
Solution 1:
As you said they are exact the same. As Romain Guy said, they have changed the name because "fill_parent"
was confusing for developers. As matter of the fact, "fill_parent"
does not fill the remaining space (for that you use the weight attribute) but it takes as much space as its layout parent. That's why the new name is "match_parent"
.
Solution 2:
According to Romain Guy in this video, these words mark the same behaviour. But many developers misunderstood what fill_parent meant, hence they came up with an alias.
Solution 3:
I have developed in Android long enough to also realize that there seems to be no difference except when you want to run on an older API. I would use fill_parent
because I make all of my apps with minimum API 7. Also, on a side note, since Android is forward compatible this is the way to go.
Solution 4:
Addition to the existing answers. Here is a part of the source code from LayoutParams
class, both FILL_PARENT and MATCH_PARENT constants map to the same value. So we have absolutely the same functionality.
public static class LayoutParams {
/**
* Special value for the height or width requested by a View.
* FILL_PARENT means that the view wants to be as big as its parent,
* minus the parent's padding, if any. This value is deprecated
* starting in API Level 8 and replaced by {@link #MATCH_PARENT}.
*/
@SuppressWarnings({"UnusedDeclaration"})
@Deprecated
public static final int FILL_PARENT = -1;
/**
* Special value for the height or width requested by a View.
* MATCH_PARENT means that the view wants to be as big as its parent,
* minus the parent's padding, if any. Introduced in API Level 8.
*/
public static final int MATCH_PARENT = -1;
...