Tạo một Class Fragment


Để tạo ra một mảnh, mở rộng các lớp Fragment, sau đó ghi đè phương pháp vòng đời phím để chèn logic của ứng dụng của bạn, tương tự như cách bạn làm với một lớp Hoạt động.

Bạn có thể nghĩ ra một mảnh như một phần mô-đun của một hoạt động, trong đó có vòng đời riêng của mình, nhận được sự kiện đầu vào riêng của mình, và bạn có thể thêm hoặc loại bỏ trong khi hoạt động đang chạy (loại giống như một "hoạt động phụ" mà bạn có thể tái sử dụng trong các hoạt động khác nhau). Bài học này cho thấy cách mở rộng các lớp Fragment sử dụng Thư viện hỗ trợ để ứng dụng của bạn vẫn còn tương thích với các thiết bị chạy phiên bản hệ thống thấp như Android 1.6.


Lưu ý: Nếu bạn quyết định rằng mức độ API tối thiểu ứng dụng của bạn đòi hỏi phải là 11 hoặc cao hơn, bạn không cần phải sử dụng các thư viện hỗ trợ và thay vào đó có thể sử dụng của khung được xây dựng trong lớp và Fragment API liên quan. Chỉ cần lưu ý rằng bài học này là tập trung vào việc sử dụng các API từ Thư viện hỗ trợ, trong đó sử dụng chữ ký gói cụ thể và tên API đôi khi hơi khác so với các phiên bản trong nền tảng này. lap trinh android


Trước khi bắt đầu bài học này, bạn phải thiết lập dự án Android của bạn để sử dụng các thư viện hỗ trợ. Nếu bạn chưa sử dụng các thư viện hỗ trợ trước, lập dự án của bạn để sử dụng thư viện v4 bằng cách làm theo các tài liệu cài đặt thư viện hỗ trợ. Tuy nhiên, bạn cũng có thể bao gồm các thanh ứng dụng trong các hoạt động của bạn bằng cách thay vì sử dụng các thư viện v7 appcompat, đó là tương thích với Android 2.1 (API cấp 7) và cũng bao gồm các API Fragment.



Một sự khác biệt khi tạo một Fragment là bạn phải sử dụng các onCreateView () gọi lại để xác định bố trí. Trong thực tế, đây là gọi lại duy nhất bạn cần để có được một mảnh chạy. Ví dụ, đây là một mảnh đơn giản mà quy định cụ thể bố trí riêng của mình:


Code:
import android.os.Bundle;
Code:
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.ViewGroup;


public class ArticleFragment extends Fragment {
 
@overr
ide
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.article_view, container, false);
    }
}



Cũng giống như một hoạt động, một mảnh nên thực hiện callbacks vòng đời khác cho phép bạn quản lý nhà nước của nó khi nó được thêm vào hoặc lấy ra từ các hoạt động và là quá trình chuyển đổi hoạt động giữa các quốc gia vòng đời của nó. Ví dụ, khi onPause () phương pháp của hoạt động được gọi là, bất kỳ mảnh vỡ trong hoạt động cũng nhận được một cuộc gọi đến onPause ().


Thông tin thêm về vòng đời và gọi lại các phương pháp phân mảnh có sẵn trong hướng phát triển mảnh vỡ.


Thêm một Fragment để một hoạt động bằng cách sử dụng XML
Trong khi các mảnh vỡ được tái sử dụng, các thành phần giao diện người dùng mô-đun, mỗi thể hiện của một lớp Fragment phải gắn với một FragmentActivity mẹ. Bạn có thể đạt được hiệp hội này bằng cách xác định mỗi đoạn trong hoạt động bố trí tập tin XML của bạn.


Lưu ý: FragmentActivity là một hoạt động đặc biệt được cung cấp trong các thư viện hỗ trợ để xử lý phân mảnh trên các phiên bản hệ thống cũ hơn API mức 11. Nếu các phiên bản hệ thống thấp nhất bạn hỗ trợ là API cấp 11 hoặc cao hơn, sau đó bạn có thể sử dụng một hoạt động thường xuyên.


Dưới đây là một ví dụ bố trí tập tin cho biết thêm rằng hai mảnh để một hoạt động khi màn hình điện thoại được coi là "lớn" (theo quy định của vòng loại lớn trong tên thư mục).


Code:
res/layout-large/news_articles.xml
Code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">


    <fragment android:name="com.example.android.fragments.HeadlinesFragment"
              android:id="@+id/headlines_fragment"
              android:layout_weight="1"
              android:layout_width="0dp"
              android:layout_height="match_parent" />


    <fragment android:name="com.example.android.fragments.ArticleFragment"
              android:id="@+id/article_fragment"
              android:layout_weight="2"
              android:layout_width="0dp"
              android:layout_height="match_parent" />


</LinearLayout> 



Mẹo: Để biết thêm về việc tạo bố cục cho kích thước màn hình khác nhau, đọc Hỗ trợ kích cỡ màn hình khác nhau.
>> KHóa học lập trình android tại hà nội
Sau đó áp dụng cách bố trí để hoạt động của bạn:


Code:
import android.os.Bundle;
Code:
import android.support.v4.app.FragmentActivity;


public class MainActivity extends FragmentActivity {
 
@overr
ide
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.news_articles);
    }
}



Nếu bạn đang sử dụng các thư viện v7 appcompat, hoạt động của bạn thay vì phải mở rộng AppCompatActivity, mà là một lớp con của FragmentActivity. Để biết thêm thông tin, đọc thêm các App Bar).


Lưu ý: Khi bạn thêm một đoạn để bố trí một hoạt động bằng cách xác định các đoạn trong file layout XML, bạn không thể loại bỏ các mảnh vỡ tại thời gian chạy. Nếu bạn có kế hoạch để trao đổi các mảnh vỡ của bạn vào và ra trong quá trình tương tác người dùng, bạn phải thêm đoạn để hoạt động khi hoạt động đầu tiên bắt đầu, như thể hiện trong các bài học tiếp theo.


>> Xem theem: Khoa hoc photoshop co ban tai Ha Noi