Các mảnh vỡ không rắc rối: Sử dụng Thành phần Kiến trúc Điều hướng Android Android

Tác Giả: John Stephens
Ngày Sáng TạO: 2 Tháng MộT 2021
CậP NhậT Ngày Tháng: 17 Có Thể 2024
Anonim
Các mảnh vỡ không rắc rối: Sử dụng Thành phần Kiến trúc Điều hướng Android Android - ỨNg DụNg
Các mảnh vỡ không rắc rối: Sử dụng Thành phần Kiến trúc Điều hướng Android Android - ỨNg DụNg

NộI Dung


Trong hội nghị I / O 2018, Google đã công bố một cách tiếp cận mới để phát triển ứng dụng Android.

Đề xuất chính thức của Google Khác là tạo một Hoạt động duy nhất đóng vai trò là điểm nhập chính của ứng dụng của bạn, sau đó phân phối phần còn lại của nội dung ứng dụng của bạn dưới dạng các đoạn.

Mặc dù suy nghĩ về việc tung hứng tất cả các giao dịch phân mảnh và vòng đời khác nhau có vẻ như là một cơn ác mộng, tại I / O 2018, Google cũng đã ra mắt Thành phần Kiến trúc Điều hướng được thiết kế để giúp bạn áp dụng loại cấu trúc Hoạt động đơn lẻ này.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách thêm thành phần Điều hướng vào dự án của bạn và cách bạn có thể sử dụng nó để nhanh chóng và dễ dàng tạo một ứng dụng nhiều Hoạt động, nhiều đoạn, với một chút trợ giúp từ Trình chỉnh sửa Điều hướng mới của Android Studio. Khi bạn đã tạo và kết nối các đoạn của mình, chúng tôi sẽ cải thiện việc chuyển đổi đoạn tiêu chuẩn của Android bằng cách sử dụng thành phần Điều hướng và Trình chỉnh sửa để tạo ra một loạt các hình ảnh động chuyển đổi có thể tùy chỉnh hoàn toàn.


Thành phần kiến ​​trúc dẫn đường là gì?

Một phần của Android JetPack, Thành phần Kiến trúc Điều hướng giúp bạn trực quan hóa các tuyến khác nhau thông qua ứng dụng của bạn và đơn giản hóa quá trình triển khai các tuyến này, đặc biệt khi nói đến việc quản lý các giao dịch phân đoạn.

Để sử dụng thành phần Điều hướng, bạn sẽ cần phải tạo một Biểu đồ điều hướng, đây là một tệp XML mô tả cách các hoạt động và các đoạn của ứng dụng của bạn liên quan với nhau.

Một đồ thị điều hướng bao gồm:

  • Điểm đến: Các màn hình riêng lẻ mà người dùng có thể điều hướng đến
  • Hành động: Các tuyến đường mà người dùng có thể đi giữa các điểm đến ứng dụng của bạn

Bạn có thể xem bản trình bày trực quan của đồ thị điều hướng trong dự án của bạn trong Trình chỉnh sửa điều hướng Android Studio. Bên dưới, bạn sẽ tìm thấy Biểu đồ điều hướng bao gồm ba đích và ba hành động như xuất hiện trong Trình chỉnh sửa điều hướng.


Thành phần Điều hướng được thiết kế để giúp bạn triển khai cấu trúc ứng dụng được đề xuất mới của Google, trong đó một Hoạt động duy nhất lưu trữ trên máy chủ Đồ thị điều hướng và tất cả các điểm đến của bạn được triển khai dưới dạng các đoạn. Trong bài viết này, chúng tôi sẽ theo cách tiếp cận được đề xuất này và tạo ra một ứng dụng bao gồm MainActivity và ba điểm đến phân đoạn.

Tuy nhiên, thành phần Điều hướng không chỉ dành cho các ứng dụng có cấu trúc được đề xuất này. Một dự án có thể có nhiều Biểu đồ điều hướng và bạn có thể sử dụng các đoạn và Hoạt động làm điểm đến trong các Biểu đồ điều hướng đó. Nếu bạn di chuyển một dự án lớn, trưởng thành sang thành phần Điều hướng, bạn có thể thấy việc tách luồng điều hướng ứng dụng của mình thành các nhóm dễ dàng hơn, trong đó mỗi nhóm bao gồm một Hoạt động chính của nhóm, một số đoạn liên quan và Biểu đồ điều hướng riêng.

Thêm Trình chỉnh sửa Điều hướng vào Android Studio

Để giúp bạn tận dụng tối đa thành phần Điều hướng, Android Studio 3.2 Canary và các tính năng cao hơn của Trình chỉnh sửa Điều hướng mới.

Để kích hoạt trình chỉnh sửa này:

  • Chọn phòng thu Android Android> Tùy chọn trong danh sách của Android Studio từ thanh menu của Android Studio.
  • Trong menu bên trái, hãy chọn Thử nghiệm.
  • Nếu nó đã được chọn, hãy chọn hộp kiểm Bật Bật Trình điều hướng Chỉnh sửa.

  • Nhấp vào OK OK.
  • Khởi động lại Android Studio.

Phụ thuộc dự án: Phân đoạn điều hướng và giao diện người dùng điều hướng

Tạo một dự án mới với các cài đặt bạn chọn, sau đó mở tệp build.gradle của nó và thêm phân đoạn điều hướng và điều hướng-ui làm phụ thuộc dự án:

phụ thuộc {tệp thực hiệnTree (dir: libs, bao gồm :) triển khai com.android.support:appcompat-v7:28.0.0 triển khai com.android.support.constraint: ràng buộc bố cục: 1.1.3 // Thêm // thực hiện sau "android.arch.navlation: navigation-Fragment: 1.0.0-alpha05" // Navigation-UI cung cấp quyền truy cập vào một số chức năng của trình trợ giúp // triển khai "android.arch.navlation: navigation-ui: 1.0.0-alpha05" com .android.support: support-v4: 28.0.0 testImcellenceation Junit: junit: 4.12 androidTestImcellenceation com.android.support.test: runner: 1.0.2 androidTestImcellenceation com.android.support.test.espresso: espresso-core: 3.0.2 }

Nhận tổng quan trực quan về điều hướng ứng dụng của bạn

Để tạo một đồ thị điều hướng:

  • Nhấp chuột vào thư mục dự án của bạn
  • Mở trình đơn thả xuống Loại tài nguyên và chọn điều hướng.
  • Chọn hàng OK OK.
  • Nhấp chuột điều khiển vào thư mục mới res / navigation của bạn và chọn New New> tập tin tài nguyên điều hướng.
  • Mở trình đơn thả xuống Loại tài nguyên và chọn Chuyển hướng.

  • Đặt tên tập tin này; Tôi sử dụng ngôn ngữ của hải quân
  • Nhấp vào OK OK.

Mở tập tin Res res / navigation / nav_graph của bạn và Trình chỉnh sửa Điều hướng sẽ tự động khởi chạy. Tương tự như trình chỉnh sửa bố cục, Trình chỉnh sửa Điều hướng được chia thành các tab Thiết kế và Chế độ văn bản.

Nếu bạn chọn tab Văn bản trước, bạn sẽ thấy XML sau:

<? xml version = "1.0" oding = "utf-8"?> // Navigation, là nút gốc của mọi đồ thị điều hướng //

Tab của Design Design là nơi bạn có thể xây dựng và chỉnh sửa ứng dụng điều hướng của mình một cách trực quan.

Từ trái sang phải, Trình chỉnh sửa Điều hướng bao gồm:

  • Danh sách điểm đến: Điều này liệt kê tất cả các điểm đến tạo nên Biểu đồ điều hướng cụ thể này, cộng với Hoạt động nơi Biểu đồ điều hướng được lưu trữ.
  • Trình chỉnh sửa biểu đồ: Trình chỉnh sửa biểu đồ cung cấp một cái nhìn tổng quan về tất cả các điểm đến của biểu đồ và các hành động kết nối chúng.
  • Trình soạn thảo thuộc tính: Nếu bạn chọn một điểm đến hoặc một hành động trong Trình chỉnh sửa biểu đồ, bảng điều khiển các thuộc tính của Wap sẽ hiển thị thông tin về mục hiện được chọn.

Tạo biểu đồ điều hướng: Thêm điểm đến

Đồ thị điều hướng của chúng tôi hiện đang trống. Hãy để thêm một số điểm đến.

Bạn có thể thêm Hoạt động hoặc các đoạn đã tồn tại, nhưng bạn cũng có thể sử dụng Biểu đồ điều hướng để nhanh chóng và dễ dàng tạo các đoạn mới:

  • Nhấn nút chọn điểm mới của điểm mới và chọn Chọn Tạo điểm đến trống.

  • Trong trường Tên mảnh vụn, hãy nhập tên lớp mảnh vỡ của bạn; Tôi sử dụng FirstFragment.
  • Hãy chắc chắn rằng hộp kiểm XML Tạo bố cục XML được chọn.
  • Hoàn thành trường Tên phân đoạn của tên mảnh vụn; Tôi sử dụng phần mềm Fragment_first.
  • Nhấp vào Kết thúc.

Một lớp con FirstFragment và tập tin tài nguyên bố cục của Fragment_first.xml tương ứng sẽ được thêm vào dự án của bạn. FirstFragment cũng sẽ xuất hiện dưới dạng đích trong Biểu đồ điều hướng.

Nếu bạn chọn FirstFragment trong Trình chỉnh sửa điều hướng, thì bảng điều khiển thuộc tính của người dùng sẽ hiển thị một số thông tin về điểm đến này, chẳng hạn như tên lớp và ID mà bạn sẽ sử dụng để tham chiếu điểm đến này ở nơi khác trong mã của bạn.

Rửa sạch và lặp lại để thêm SecondFragment và ThirdFragment vào dự án của bạn.

Chuyển sang tab Văn bản trước và bạn có thể thấy rằng XML đã được cập nhật để phản ánh những thay đổi này.

Mọi đồ thị điều hướng đều có một điểm đến bắt đầu, đó là màn hình hiển thị khi người dùng khởi chạy ứng dụng của bạn. Trong đoạn mã trên, chúng tôi sử dụng FirstFragment làm điểm đến bắt đầu ứng dụng của chúng tôi. Nếu bạn chuyển sang tab Thiết kế, thì bạn sẽ nhận thấy một biểu tượng ngôi nhà, cũng đánh dấu FirstFragment là điểm đến bắt đầu của biểu đồ.

Nếu bạn thích sử dụng một điểm bắt đầu khác, sau đó chọn Hoạt động hoặc đoạn được đề cập, sau đó chọn Bộ cài đặt Bắt đầu Đích đến từ bảng điều khiển Att Att phe.

Ngoài ra, bạn có thể thực hiện thay đổi này ở cấp mã:

Cập nhật bố cục mảnh của bạn

Bây giờ chúng ta đã có điểm đến của mình, hãy để thêm một số yếu tố giao diện người dùng để nó luôn luôn rõ ràng đoạn nào chúng ta đang xem.

Tôi sẽ thêm các mục sau vào mỗi phân đoạn:

  • Một TextView chứa tiêu đề Đoạn phân đoạn
  • Một nút màllll cho phép người dùng điều hướng từ một đoạn tới đoạn tiếp theo

Tại đây, mã cho mỗi tệp tài nguyên bố cục:

Fragment_first.xml

Fragment_second.xml

Fragment_third.xml

Kết nối điểm đến của bạn bằng hành động

Bước tiếp theo là liên kết các điểm đến của chúng tôi thông qua các hành động.

Bạn có thể tạo một hành động trong Trình chỉnh sửa Điều hướng bằng cách kéo và thả đơn giản:

  • Hãy chắc chắn rằng tab Trình biên tập bản thiết kế được chọn.
  • Di chuột qua phía bên phải của điểm đến mà bạn muốn điều hướng từ, trong trường hợp này là FirstFragment. Một vòng tròn sẽ xuất hiện.
  • Nhấp và kéo con trỏ của bạn đến đích bạn muốn điều hướng đến, đó là SecondFragment. Một đường màu xanh sẽ xuất hiện. Khi SecondFragment được tô sáng màu xanh lam, hãy nhả con trỏ để tạo liên kết giữa các điểm đến này.

Bây giờ cần có một mũi tên hành động liên kết FirstFragment với SecondFragment. Nhấn vào đây để chọn mũi tên này và bảng điều khiển thuộc tính của nhóm LinkedIn sẽ cập nhật để hiển thị một số thông tin về hành động này, bao gồm cả ID được gán cho hệ thống của nó.

Thay đổi này cũng được phản ánh trong XML Đồ thị điều hướng:

… … …

Rửa sạch và lặp lại để tạo một hành động liên kết SecondFragment với ThirdFragment và một hành động liên kết ThirdFragment với FirstFragment.

Lưu trữ đồ thị điều hướng

Biểu đồ Điều hướng cung cấp một biểu diễn trực quan về các điểm đến và hành động của ứng dụng của bạn, nhưng việc gọi các hành động này đòi hỏi một số mã bổ sung.

Khi bạn đã tạo một Đồ thị điều hướng, bạn cần lưu trữ nó bên trong một Hoạt động bằng cách thêm một NavhostFragment vào tệp bố trí Activity Activity đó. NavhostFragment này cung cấp một thùng chứa nơi điều hướng có thể xảy ra và cũng sẽ chịu trách nhiệm hoán đổi các đoạn vào và ra khi người dùng điều hướng xung quanh ứng dụng của bạn.

Mở tệp dự án của bạn trong ứng dụng của bạn và thêm một tệp NavhostFragment.

<? xml version = "1.0" mã hóa = "utf-8"?> // Tạo một đoạn mà Lllll đóng vai trò là NavhostFragment //

Trong đoạn mã trên, ứng dụng: defaultNavhost = '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''

Chuyển đổi kích hoạt với NavContoder

Tiếp theo, chúng ta cần triển khai NavContoder, đây là thành phần mới mà chịu trách nhiệm quản lý quá trình điều hướng trong NavhostFragment.

Để điều hướng đến một màn hình mới, bạn cần truy xuất NavContoder bằng Navigation.findNavControll, gọi phương thức navigation (), sau đó chuyển ID của đích mà bạn điều hướng đến hoặc hành động mà bạn muốn gọi. Ví dụ, tôi gọi điện thoại hành động, kích hoạt tính năng_firstFragment_to_secondFragment, sẽ chuyển người dùng từ FirstFragment sang SecondFragment:

NavContoder navContoder = Navigation.findNavControll (getActivity (), R.id.my_nav_host_fragment); navControll.navigate (R.id.action_firstFragment_to_secondFragment);

Người dùng sẽ chuyển sang một màn hình mới bằng cách nhấp vào nút, vì vậy chúng tôi cũng cần triển khai OnClickListener.

Sau khi thực hiện những thay đổi này, FirstFragment sẽ trông giống như thế này:

nhập android.os.Bundle; nhập android.support.annotation.NonNull; nhập android.support.annotation.Nullable; nhập android.support.v4.app.Fragment; nhập android.view.LayoutInflater; nhập android.view.View; nhập android.view.Viewgroup; nhập android.widget.Button; nhập androidx.navulation.NavControll; nhập androidx.navulation.Navulation; lớp công khai FirstFragment mở rộng Fragment {public FirstFragment () {} @Override void công khai onCreate (Bundle yetInstanceState) {super.onCreate (yetInstanceState); if (getArgument ()! = null) {}} @Override công khai Xem onCreateView (Giao diện bố trí trong Inflater, container Viewgroup, Bundle saveInstanceState) {return Inflater.inflate (R.layout.fragment_first, container, false); } @Override void công khai trênViewCreated (@NonNull Chế độ xem, @Nullable Gói đã lưuInstanceState) {Nút nút = (Nút) view.findViewById (R.id.button); button.setOnClickListener (new View.OnClickListener () {@Override void công khai onClick (Xem v) {NavContoder navContoder = Navigation.findNavContoder (getActivity (), R.id.my_nav_host_fragment); navControll.nav }}); }}

Tiếp theo, mở MainActivity của bạn và thêm vào như sau:

  • NavigationView.OnNavlationItemSelectedListener: Trình lắng nghe để xử lý các sự kiện trên các mục điều hướng
  • Thứ haiFragment.OnFragmentInteractionListener: Giao diện được tạo khi bạn tạo SecondFragment thông qua Trình chỉnh sửa Điều hướng

MainActivity cũng cần triển khai phương thức onFragmentInteraction (), cho phép giao tiếp giữa đoạn và Hoạt động.

nhập android.support.v7.app.AppCompatActivity; nhập android.os.Bundle; nhập android.net.Uri; nhập android.view.MothyItem; nhập android.support.design.widget.NavulationView; nhập android.support.annotation.NonNull; lớp công khai MainActivity mở rộng AppCompatActivity thực hiện NavigationView.OnNavlationItemSelectedListener, SecondFragment.OnFragmentInteractionListener {@Override void void onCreate (Bundle yetInstanceState) {super.onCreate setContentView (R.layout.activity_main); } @Override boolean công khai onNavlationItemSelected (@NonNull MenuItem item) {return false; } @Override void công khai trênFragmentInteraction (Uri uri) {}}

Thêm điều hướng

Để thực hiện phần còn lại của điều hướng ứng dụng, chúng ta chỉ cần sao chép / dán khối onViewCreated và thực hiện một vài điều chỉnh để chúng tôi tham khảo các tiện ích nút và hành động điều hướng chính xác.

Mở SecondFragment của bạn và thêm vào như sau:

@Override void công khai onViewCreated (@NonNull Chế độ xem, @Nullable Gói đã lưuInstanceState) {Nút nút = (Nút) view.findViewById (R.id.button2); button.setOnClickListener (new View.OnClickListener () {@Override công khai void onClick (Xem v) {NavContoder navContoder = Navigation.findNavContoder (getActivity (), R.id.my_nav_host_fragment); navControll.navment }}); }

Sau đó, cập nhật khối FirstFragment trên onViewCreated:

@Override void công khai onViewCreated (@NonNull Chế độ xem, @Nullable Gói đã lưuInstanceState) {Nút nút = (Nút) view.findViewById (R.id.button3); button.setOnClickListener (mới }}); }

Cuối cùng, don Quên quên thêm giao diện ThirdFragment.OnFragmentInteractionListener vào MainActivity của bạn:

lớp công khai MainActivity mở rộng AppCompatActivity thực hiện NavigationView.OnNavlationItemSelectedListener, SecondFragment.OnFragmentInteractionListener, ThirdFragment.OnFragmentInteractionListener {

Chạy dự án này trên thiết bị Android hoặc Thiết bị ảo Android (AVD) của bạn và kiểm tra điều hướng. Bạn sẽ có thể điều hướng giữa cả ba mảnh bằng cách nhấp vào các nút khác nhau.

Tạo hình động chuyển tiếp tùy chỉnh

Tại thời điểm này, người dùng có thể di chuyển xung quanh ứng dụng của bạn, nhưng quá trình chuyển đổi giữa mỗi phân đoạn khá đột ngột. Trong phần cuối cùng này, chúng tôi sẽ sử dụng thành phần Điều hướng để thêm một hình ảnh động khác nhau cho mỗi lần chuyển đổi, để chúng diễn ra suôn sẻ hơn.

Mỗi hình ảnh động mà bạn muốn sử dụng phải được xác định trong tệp tài nguyên hoạt hình của chính nó, bên trong một thư mục Res res / anim tựa. Nếu dự án của bạn không có một thư mục nào đó có chứa một thư mục res

  • Nhấp chuột vào thư mục dự án của bạn trong lịch sử của bạn và chọn Mới Mới> Thư mục tài nguyên Android.
  • Đặt tên cho thư mục này là phim hoạt hình.
  • Mở trình đơn thả xuống loại Tài nguyên và chọn hoạt hình.
  • Nhấp vào OK OK.

Hãy bắt đầu bằng cách xác định một hình ảnh động mờ dần:

  • Nhấp chuột vào thư mục dự án của bạn
  • Chọn New New> Tập tin tài nguyên hoạt hình.
  • Đặt tên cho tập tin này là fade fade.
  • Mở tập tin mờ dần của bạn và thêm vào đây:

Lặp lại các bước trên để tạo tệp tài nguyên hoạt hình thứ hai, được đặt tên là slide slideDef_left, sau đó thêm vào như sau:

Tạo một tập tin thứ ba, được đặt tên là slide slideDef_right và thêm vào như sau:

Bây giờ bạn có thể gán các hình động này cho hành động của mình thông qua Trình chỉnh sửa Điều hướng.Để phát hoạt hình mờ dần bất cứ khi nào người dùng điều hướng từ FirstFragment sang SecondFragment:

  • Mở Biểu đồ điều hướng của bạn và đảm bảo rằng tab Thiết kế trực tuyến được chọn.
  • Nhấn vào đây để chọn hành động liên kết FirstFragment với SecondFragment.
  • Trong bảng điều khiển của Att Attult, nhấp vào để mở rộng phần Chuyển đổi trực tuyến. Theo mặc định, mọi danh sách thả xuống trong phần này nên được đặt thành Không ai.
  • Mở trình đơn thả xuống của Enter Enter Enter, điều khiển hoạt hình phát bất cứ khi nào SecondFragment chuyển sang đầu ngăn xếp phía sau. Chọn hình ảnh động mờ dần.

Nếu bạn chuyển sang tab Thiết kế của Wap, thì bạn sẽ thấy rằng hoạt hình này đã được thêm vào hành động hành động_firstFragment_to_secondFragment.

Chạy dự án cập nhật trên thiết bị Android hoặc AVD của bạn. Bây giờ bạn sẽ gặp hiệu ứng mờ dần bất cứ khi nào bạn điều hướng từ FirstFragment sang SecondFragment.

Nếu bạn có cái nhìn khác về bảng điều khiển của Att Attult, bạn sẽ thấy rằng Enter Enter là một phần duy nhất của quá trình chuyển đổi nơi bạn có thể áp dụng một hình ảnh động. Bạn cũng có thể chọn từ:

  • Lối thoát hiểm: Hoạt hình phát khi một đoạn rời khỏi ngăn xếp
  • Nhập Pop: Hoạt hình phát khi một đoạn đang nằm trên đỉnh của ngăn xếp
  • Thoát Pop: Hoạt hình phát khi một đoạn đang chuyển xuống dưới cùng của ngăn xếp

Hãy thử trải nghiệm bằng cách áp dụng các hình ảnh động khác nhau cho các phần khác nhau của quá trình chuyển đổi của bạn. Bạn cũng có thể tải xuống dự án đã hoàn thành từ GitHub.

Gói lại

Trong bài viết này, chúng tôi đã xem xét cách bạn có thể sử dụng thành phần Kiến trúc Điều hướng để tạo một ứng dụng nhiều Hoạt động, nhiều đoạn, hoàn thành với các hình động chuyển tiếp tùy chỉnh. Thành phần Điều hướng có thuyết phục bạn di chuyển các dự án của bạn sang loại cấu trúc ứng dụng này không? Cho chúng tôi biết trong các ý kiến ​​dưới đây!

iêu thị công nghệ Bet Buy hiện đang thực hiện chương trình khuyến mãi kéo dài bốn ngày cả trực tuyến và tại cửa hàng. Chương trình khuyến mại Mua tốt ...

Nếu bạn có thể chờ đợi đến cuối tháng 11 để bán hàng vào Thứ áu Đen Tối Mua tốt nhất, nhà bán lẻ hôm nay đã công bố một ố lượng khá lớn c...

Vị Tri ĐượC LựA ChọN