Подтвердить что ты не робот

Является ли устаревшее слово единственной разницей между fill_parent и match_parent

Я обнаружил, что оба fill_parent и match_parent означают одно и то же

  • fill_parent означает, что представление хочет быть таким же большим, как и его родительский элемент, минус родительское дополнение, если оно есть.
  • match_parent означает, что представление хочет быть таким же большим, как и его родительский элемент, минус родительское дополнение, если оно есть.

Единственное отличие, которое я обнаружил, это то, что fill_parent устарел, начиная с уровня API 8, и заменяется на match_parent

Однако я не заметил никакой разницы между этими двумя. Если оба одинаковые, то почему fill_parent устарел. Может ли кто-нибудь объяснить какие-либо различия между этими двумя, за исключением того, что один из них устарел, а другой нет?

Я прошел через http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

4b9b3361

Ответ 1

Как вы сказали, они точно то же самое. Как сказал Ромен Гай, они изменили имя, потому что "fill_parent" запутался для разработчиков. В связи с тем, что "fill_parent" не заполняет оставшееся пространство (для этого вы используете атрибут weight), но он занимает столько места, сколько его родительский макет. Поэтому новое имя "match_parent".

Ответ 2

По словам Ромена Гая в этом видео, эти слова отмечают одно и то же поведение. Но многие разработчики неправильно поняли, что означает fill_parent, поэтому они придумали псевдоним.

Ответ 3

Я разработал Android достаточно долго, чтобы понять, что, похоже, нет никакой разницы, кроме тех случаев, когда вы хотите запускать более старый API. Я бы использовал fill_parent, потому что я делаю все свои приложения с минимальным API 7. Кроме того, с другой стороны, поскольку Android является передовой совместимой, это путь.

Ответ 4

Дополнить существующие ответы. Вот часть исходного кода класса LayoutParams, и константы FILL_PARENT и MATCH_PARENT сопоставляются с тем же значением. Таким образом, мы имеем абсолютно ту же функциональность.

    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 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 padding, if any. Introduced in API Level 8.
     */
    public static final int MATCH_PARENT = -1;
    ...