2011-12-15 32 views
60

Tôi thấy rằng cả hai fill_parentmatch_parent nghĩa là điều tương tựlà bị phản đối từ sự khác biệt duy nhất giữa fill_parent và match_parent

  • fill_parent có nghĩa là quan điểm muốn trở thành lớn như mẹ của nó, trừ đệm của cha mẹ , nếu có.
  • match_parent có nghĩa là chế độ xem muốn lớn bằng bố mẹ, trừ phần đệm của phụ huynh, nếu có.

Sự khác biệt duy nhất mà tôi thấy là fill_parent bị phản đối bắt đầu từ API Cấp 8 và được thay thế bằng match_parent

Tuy nhiên, tôi đã không nhận thấy bất kỳ sự khác biệt giữa hai. Nếu cả hai đều giống nhau thì tại sao fill_parent không được chấp nhận. Bất cứ ai có thể giải thích bất kỳ sự khác biệt giữa hai ngoại trừ một thực tế là một là không được chấp nhận và khác không phải là?

Tôi đã trải qua http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

+0

Có hai phương pháp trong API thực hiện cùng một điều là một lý do để phản đối phương pháp. – fyr

+0

Thông tin thêm về http://stackoverflow.com/questions/5761960/what-is-the-difference-between-match-parent-and-fill-parent-property-in-android – vnshetty

Trả lời

79

Như bạn đã nói, chúng giống hệt nhau. Như Romain Guy đã nói, họ đã đổi tên vì "fill_parent" gây nhầm lẫn cho các nhà phát triển. Thực tế, "fill_parent" không lấp đầy khoảng trống còn lại (để bạn sử dụng thuộc tính trọng số) nhưng phải mất nhiều không gian như bố cục bố cục của nó. Đó là lý do tại sao tên mới là "match_parent".

7

tôi đã phát triển trong Android đủ lâu cũng nhận ra rằng có vẻ là không có sự khác biệt trừ khi bạn muốn chạy trên một API cũ. Tôi sẽ sử dụng fill_parent vì tôi làm cho tất cả các ứng dụng của tôi với API tối thiểu 7. Ngoài ra, trên một lưu ý phụ, vì Android là tương thích về phía trước, đây là con đường để đi.

9

Theo Romain Guy trong this video, những từ này đánh dấu cùng một hành vi. Nhưng nhiều nhà phát triển hiểu lầm những gì fill_parent có nghĩa là, do đó họ đã đưa ra một bí danh.

3

Ngoài các câu trả lời hiện có. Đây là một phần của mã nguồn từ lớp LayoutParams, cả hai hằng số FILL_PARENT và MATCH_PARENT đều có cùng giá trị. Vì vậy, chúng tôi hoàn toàn có chức năng tương tự.

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; 
    ... 
Các vấn đề liên quan