Fragment Trong Android Là Gì

     

Với việc ngày càng nhiều làm nên thiết bị Android thành lập và hoạt động thì bạn ta vẫn nghĩ ra hồ hết cách khác nhau để sắp xếp giao diện ứng dụng sao cho tương xứng để tận dụng diện tích màn hình. Một trong số đó là Fragment. Đây là 1 thành phần khá quan trọng, được áp dụng rất nhiều trong những ứng dụng chuyên nghiệp, nó khá giống activity. Và trong bài viết này chúng ta cùng mày mò về nó nhé !

Sự thành lập và hoạt động và tầm quan trọng của Fragment

Mỗi một đối tượng khi ra đời đều phải sở hữu nguyên nhân và mục đích của nó.Vậy thì mục đích thành lập và hoạt động của Fragment là gì ?Trở lại năm 2010 Steve Jobs và táo bị cắn đã tạo ra mắt dòng sản phẩm iPad, thiết bị download một màn hình chạm màn hình lớn (9.7 inch). Không chỉ có có vậy, táo apple và những Apple developers đã về tối ưu hóa giao diện người dùng cho ipad ,giao diện nhiều cột trên một screen ra đời. Đây là 1 trong sản phẩm mang tính cách mạng của táo bị cắn dở và ngay mau chóng nó đã đuc rút cho apple những doanh số bán hàng khổng lồ.

Bạn đang xem: Fragment trong android là gì

*

Các bên sản xuất điện thoại lúc kia như Acer hay hãng asus lập tức trình làng các máy tính xách tay bảng chạy game android 2.3 mà cấm đoán Google kịp có thời cơ viết lại android cho tương xứng với trải nghiệm màn hình lớn. Màn hình hiển thị có đầy những khoảng trắng khôn xiết vô ích. Bởi trên máy tính xách tay bảng có screen lớn nên người dùng có xu thế dùng cả hai tay để thao tác, dẫn tới bối cảnh một cột truyền thống lịch sử không hầu hết gây lãng phí không khí mà còn gây cực nhọc khăn, phiền phức cho người dùng khi thao tác.Các thiết bị máy vi tính bảng chạy game android 2.3 khi ấy không không giống gì một chiếc smartphone với một hình lớn, thất bại trước tiên trên thị trường máy vi tính bảng chạy app android so cùng với iPad. Nhưng dù sao cũng không mong muốn nhiều vào hồ hết thiết bị "học đòi" yêu cầu không như thế nào

*
.

Để đuổi bắt kịp cuộc đua với Apple cũng như sức xay từ phía những OEM, Google đã đề xuất xây dựng một phiên phiên bản Android tính chất cho tablet(máy tính bảng) – game android 3.0 HoneyComb – với cùng một loạt các thư viện mới, mà chủ yếu, là Fragment. Khi đem áp dụng vào thực tế, thì nếu như so lại với giao diện iPad mặt trên, thì mỗi Fragment sẽ là 1 trong cột trong một Activity lớn.

Và nguồn gốc của sự thành lập và hoạt động của Fragment là như vậy. Mặc dù nhiên, không tạm dừng ở đó, Fragment đã cải cách và phát triển rất cấp tốc và quá cả ý tưởng ban đầu chỉ nhằm để buổi tối ưu đồ họa cho Activity.Có lẽ đang hiểu rõ ưu thế của Fragment, ngay trong lúc Android 4.0 Ice Cream Sandwich ra đời, thì thư viện tư vấn cho Fragment cũng xuất hiện và hỗ trợ ngược lại cho tới tận API4, tức apk 1.6, để các developers trước là không phải viết lại ứng dụng cho android 2.3 về trước và 3.0 về sau, mặt khác để họ rất có thể tận dụng sức khỏe của Fragment trên những phiên bạn dạng Android cũ hơn.

Bạn có thể thấy sẽ có ứng dụng hoàn toàn không dùng đến Fragment, trường hợp UI của nó đủ đối kháng giản. Nhưng trong nhiều trường hợp, nếu bạn biết thực hiện một Activity thành nhiều Fragment con, hoàn toàn có thể sẽ giúp tiết kiệm không hề ít thời gian thiết kế, xây cất và sửa lỗi nữa đấy.Vai trò cơ bản của Fragment sẽ là giúp bớt tải cho lập trình viên khi phải xây dựng giao diện năng động trên nhiều màn hình lớn bé dại khác nhau.

Fragment cùng Sự cân xứng Ngược

Như chúng ta cũng có thể thấy rằng, Fragment thành lập cũng vày một nguyên nhân chính, kia là cung cấp giao diện trên tablet. đề nghị Fragment rất gắn sát với sự thành lập của tablet. Và hệ điều hành ghi lại cho việc hỗ trợ chính thức tablet đó là hệ điều hành và quản lý Android 3.0 (APL cấp độ 11).

Vậy thì, giả dụ project của người tiêu dùng có khai báo minSdkVersion từ 11 trở lên, thì không tồn tại gì để nói. Mà lại nếu giá bán trị tùy chỉnh thiết lập này nhỏ tuổi hơn 11 thì hệ thống vẫn cung cấp tương yêu thích ngược đến với các ứng dụng như thế này, nhưng sẽ có một chút khác hoàn toàn đối cùng với việc quyết định sử dụng lớp Fragment.

Khi chế tạo Fragment, bạn sẽ luôn thấy có hai gạn lọc Fragment ở hai package khác nhau như nhị dòng trước tiên ở hình bên dưới. Một Fragment trực thuộc về android.app cùng một Fragment ở trong về android.support.v4.app. Tất nhiên, bạn nên làm sử dụng một trong những hai thôi, cách lựa chọn Fragment nào để áp dụng thì mình đã nói rõ rộng ở bên dưới đây.

*
Sau đây là cách lựa chọn Fragment nào dành cho project của bạn:

Nếu minSdkVersion của ứng dụng từ 11 trở lên. Các bạn cứ dễ chịu sử dụng Fragment vào gói android.app như dòng đầu tiên ở hình trên. Kèm theo đó bạn phải thực hiện phương thức getFragmentManager() khi buộc phải hiển thị hễ Fragment lên Activity .

Nếu minSdkVersion của ứng dụng nhỏ tuổi hơn 11. Bạn hãy dùng cho Fragment ngơi nghỉ gói tương xứng ngược android.support.v4.app ở chiếc thứ nhì của hình. Tuy thế khi này chúng ta phải dùng phương thức getSupportFragmentManager() cho mục đích hiển thị rượu cồn Fragment. Và lại sở hữu ràng buộc nữa rằng Activity chứa đựng Fragment khi này chưa hẳn Activity thường mà phải là FragmentActivity. Tuy nhiên nếu bạn thấy Activity các bạn dùng đang thừa kế từ AppCompatActivity rồi thì cũng yên trọng điểm nhé, vì AppCompatActivity cung cấp Fragment đến những hệ điều hành Android cũ hơn.

Định nghĩa Fragment

Chúng ta đã biết về lịch sử ra đời của fragment rồi, vậy thì fragment đích thực là đồ vật gi ?

A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own input đầu vào events, và which you can add or remove while the activity is running (sort of lượt thích a “sub activity” that you can reuse in different activities).

*

Bạn rất có thể hình dung Fragment chịu đựng trách nhiệm cai quản một không khí màn hình, thỉnh thoảng không gian này cũng chính là toàn màn hình. Cùng cái không gian màn hình đó của Fragment bắt buộc nằm vào một Activity nào đó. Một Activity tất cả thể có khá nhiều Fragment, tất cả khi những Fragment của Activity đó cùng mọi người trong nhà hiển thị lên một màn hình, cũng đều có khi chúng luân phiên hiển thị trường hợp như từng chúng đa số chiếm cả không khí màn hình. Với một ý nữa, một Fragment nào đó cũng hoàn toàn có thể được khai báo và áp dụng bởi những Activity không giống nhau.

Một số điểm lưu ý của Fragment mà tôi đã tổng kết được:

Fragment là một thành phần game android độc lập, được thực hiện bởi một activity, hệt như một sub-activity.Fragment bao gồm vòng đời và bối cảnh riêng.Các Fragment thường sẽ có một tệp tin java đi kèm với file bối cảnh xml. Các fragment không tồn tại file giao diện xml hay được điện thoại tư vấn là headless fragments.Vòng đời của fragment bị tác động trực tiếp vày vòng đời của activity công ty . Ví dụ, khi hoạt động bị tạm dừng, tất cả phân đoạn vào nó cũng vậy, với khi vận động bị hủy, toàn bộ phân đoạn cũng vậy.Một Fragment hoàn toàn có thể được sử dụng trong nhiều Activitiy.Fragment được phân phối API 11 trở lên.Fragment thực hiện phương thức getActivity() để lấy ra Activity chaFragment được tư tưởng trong file xml của activity (static definition) hoặc có thể sửa thay đổi fragment khi đang hoạt động (dynamic definition)

Như đã nhắc đến ở trên Fragment khá kiểu như Activity, nó cũng có thể có các trạng thái với vòng đời riêng rẽ của mình. Chúng ta cùng mày mò ở phần dưới đây nhé !

Vòng đời của một Fragment

Giống như activity, Fragment rất có thể tồn trên ở những trạng thái:

Resume(Hoạt động)Fragment hiển thị vào activity vẫn chạy.

Pause(Tạm dừng)Một hoạt activity sinh hoạt trong foreground và bao gồm tiêu điểm, dẫu vậy activity mà lại fragment này nằm trong vẫn hiển thị (activity tở foreground mờ một phần hoặc không bịt phủ toàn thể màn hình).

Stop(Dừng lại)Cũng như là với Activity, Fragment bị giới hạn khi bị thành phần làm sao đó bịt khuất trả toàn. Xuất xắc bị gỡ thoát ra khỏi Activity.Dừng không hẳn là ngã ngũ cho đời sống của Fragment. Ví dụ là những trạng thái của nó vẫn còn đấy được lưu giữ trữ, để phòng trường vừa lòng Fragment này được quay trở lại hiển thị cho tất cả những người dùng.

Dead(Chết)Nếu Fragment bị gỡ thoát ra khỏi Activity, tuy nhiên không được gửi vào Back Stack trước đó, thì nó sẽ hoàn thành vòng đời. Hoặc Activity chứa Fragment này bị gỡ ngoài Back Stack, Fragment cũng biến thành chết theo.

Sơ đồ vật vòng đời của Fragment

*

onAttach()

Callback này được gọi khá sớm, ngay lúc Activity chứa nó được kích hoạt. Hoặc ngay trong khi được gắn vào Activity.Callback này được call một lần duy nhất trong khoảng đời Fragment.

Xem thêm: Smartphone Màn Hình Cong Giá Rẻ, Top 3 Smartphone Màn Hình Cong Samsung Cao Cấp

onCreate()

Callback này được hotline khi Fragment ban đầu khởi sinh sản từ các dữ liệu đầu vào.Khác cùng với onCreate() của Activity, rằng chúng ta có thể tạo hình ảnh cho screen ở callback này, thì với Fragment họ còn bắt buộc đợi qua callback tiếp theo sau mới có thể tạo bối cảnh được.Callback này cũng rất được gọi một lần trong khoảng đời Fragment. Bạn nên khởi tạo các thành phần cơ bạn dạng của Fragment mà bạn có nhu cầu duy trì lúc Fragment bị dừng hoặc trợ thì dừng, tiếp đến được hồi sinh lại.

onCreateView()

Khi Fragment ban đầu vẽ UI lên màn hình, callback này được gọi. Nên bọn họ sẽ tận dụng callback này mang lại các tùy chỉnh về giao diện.Bạn thấy rằng, theo như sơ vật dụng trên, thì callback này sẽ tiến hành gọi lại khi nhưng Fragment được gỡ ra khỏi Activity tuy nhiên được chuyển vào Back Stack, cùng được điện thoại tư vấn lại hiển thị sau đó.

onActivityCreated()

Callback này được call ngay sau thời điểm onCreateView() được gọi. Nó báo cho biết trạng thái Activity cất nó được khởi chế tạo ra hoàn toàn. Tuy không nhiều được thực hiện hơn những callback khác, nhưng chúng ta cũng có thể tận dụng nó để chuyển đổi giao diện hay các tương tác với Activity đựng Fragment này thoải mái được rồi.

onStart()

Khi Fragment bước đầu được nhận thấy bởi người tiêu dùng và sẵn sàng nhận tương tác.

onResume()

Người dùng trọn vẹn nhìn thấy và liên tưởng được cùng với Fragment.

onPause()

Callback này như một dấu hiệu cho thấy rằng người tiêu dùng đang ra khỏi Fragment hiện tại tại.

onStop()

Fragment bao gồm thức không còn được thấy được nữa.

onDestroyView()

Chắc chắn là đối tượng người dùng View sẽ ảnh hưởng hủy sinh sống callback này. Và bởi vì đó các khởi chế tác view của bạn ở onCreateView() sẽ lập cập không còn nữa.Nếu như Fragment được chuyển vào Back Stack, thì khi được lôi ra lại sau đó, callback onCreateView() sẽ được gọi lại.

onDestroy()

Callback này chỉ như một lời “nhắc nhở” về vận mệnh của Fragment cơ mà thôi.

onDetach()

Callback này gọi đến thông báo Fragment sẽ được gỡ ngoài Activity đang chứa nó. Ngừng vòng đời của Fragment.

Lý thuyết dường như hơi những rồi, hiện nay chúng ta cùng bước vào thực hành chế tác một Fragment nhé.

Tạo một Fragment

Một điều vô cùng đặc trưng là Fragment không khi nào tách ngoài Activity. Muốn dùng Fragment thì bạn phải để hoặc điện thoại tư vấn từ Activity.

Có hai phương pháp để đặt/gọi Fragment từ bỏ Activity.

Static Fragment

Bạn đặt “cứng” trong tệp tin contentView XML của activity với thẻ .

Ví dụ ta tất cả 2 static fragment là MyFragment1.java(fragment1.xml) và MyFragment2.java(fragment2.xml).Trong file activity_main.xml khai báo tĩnh

thuộc tính class chỉ đến đường truyền chứa tệp tin java tương ứng.

Chú ý: bắt buộc phải có trực thuộc tính android:id. Còn nếu không sẽ khiến lỗi.

Xem thêm: Nước Được Sử Dụng Làm Sữa Chua Là M Sữa Chua Là? Nước Được Sử Dụng Làm Sữa Chua Là

Hai class MyFragment1.java cùng MyFragment2.java bắt buộc extends FragmentVà đề xuất ghi đè cách thức onCreateView:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) super.onCreateView(inflater, container, savedInstanceState); View view = inflater.inflate(R.layout.fragment1, container, false); return view;Định nghĩa hai tệp tin fragment1.xml cùng fragment2.xml như sau:

fragment1.xml

fragment2.xml

Kết quả:

*

Dynamics Fragment

Nếu như với phương pháp hiển thị tĩnh bên trên kia, các bạn phải chỉ định thẻ fragment nào sẽ chứa đựng Fragment làm sao một giải pháp cố định. Thì với bí quyết hiển thị động này, bạn chỉ cần khai báo một vùng không khí nào kia sẽ chứa đựng Fragment.

Ví dụ:Sửa lại tệp tin maiv_activity sống ví dụ trên như sau:

với trong tệp tin MainActivity , sửa lại cũng sửa lại thành:

public class MainActivity extends AppCompatActivity { Button btn; FragmentManager fm;