Android 에서 빵 부스러기 기능 을 구현 하 는 코드(Fragment 연동 지원)
4000 단어 android빵 부스러기프 래 그 먼 트 연동
먼저 효과 그림 보기:
먼저 Fragment 를 하나씩 추가 한 다음 에 리 턴 버튼 을 누 르 고 하나씩 리 턴 하 는 장면 을 봅 니 다.
이어서 Fragment 를 하나씩 추가 하고 tab 를 선택 하 는 장면 을 클릭 합 니 다.
demo 주소
BreadCrumbsView
사용 방식
1.레이아웃 에 도입
BreadCrumbsView
<com.tinytongtong.breadcrumbs.BreadCrumbsView
android:id="@+id/breadCrumbs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
2.설치BreadCrumbsView
의 모니터
breadCrumbsView.setOnTabListener(new BreadCrumbsView.OnTabListener() {
@Override
public void onAdded(BreadCrumbsView.Tab tab) {
Log.e("BreadCrumbsView", "BreadCrumbsView.OnTabListener#onAdded tab:" + tab.getIndex());
addFragment(tab);
}
@Override
public void onActivated(BreadCrumbsView.Tab tab) {
Log.e("BreadCrumbsView", "BreadCrumbsView.OnTabListener#onActivated tab:" + tab.getIndex());
}
@Override
public void onRemoved(BreadCrumbsView.Tab tab) {
Log.e("BreadCrumbsView", "BreadCrumbsView.OnTabListener#onRemoved tab:" + tab.getIndex());
removeLastFragment();
}
});
BreadCrumbsView.OnTabListener\#onAdded 방법 은 BreadCrumbsView\#addTab(tabName,value)방법 으로 tab 성공 후 발생 하 는 리 셋 을 추가 합 니 다.여기에 필요 한 Fragment 를 추가 할 수 있 습 니 다.아래 의 addFragment 방법 예 시 를 구체 적 으로 보 세 요.
private void addFragment(BreadCrumbsView.Tab tab) {
// TODO: 2020/5/26 3:26 PM Fragment,tab#getValue Tab , Fragment
Fragment fragment = BlankFragment.newInstance(String.format(" %d Fragment", tab.getIndex()), "" + tab.getIndex());
getSupportFragmentManager()
.beginTransaction()
.add(R.id.container, fragment, String.valueOf(tab.getIndex()))
.show(fragment)
.addToBackStack(null)
.commit();
fragments.add(fragment);
}
BreadCrumbsView.OnTabListener\#onActivated 방법 은 클릭 을 통 해 이미 존재 하 는 tab 로 전환 하고 tab 를 다시 활성화 하면 이 방법 을 호출 합 니 다.Fragment 를 새로 고침 하 는 작업 을 할 수 있 습 니 다.BreadCrumbsView.OnTabListener\#onRemoved 방법 tab 제거 후 출발 하 는 동작 입 니 다.여 기 는 보통 removeLastFragment()방법 을 호출 하면 됩 니 다.코드 예제 를 보 겠 습 니 다.
/**
* Fragment, Fragment
*/
private void removeLastFragment() {
if (fragments != null && fragments.size() > 1) {
getSupportFragmentManager().popBackStackImmediate();
fragments.removeLast();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.show(fragments.getLast())
.commit();
fragmentManager.executePendingTransactions();
}
}
3.증가 와 삭제 방법 보완코드 에 tab 를 추가 하려 면 BreadCrumbsView\#addTab(String content,Map
이 곳 의 value 가 가지 고 있 는 정 보 는 tab 에 붙 어 있 습 니 다.Fragment 를 만 들 때 tab.getValue()를 통 해 전 송 된 데 이 터 를 얻 을 수 있 습 니 다.이 를 통 해 원 하 는 Fragment 를 만 들 면 됩 니 다.
4.필요 에 따라 변경
현재 BreadCrumbsView 의 용 기 는 RecyclerView 를 사용 하여 이 루어 졌 으 며,item 의 너 비 는 패키지 내용 이 며,최대 너비 화면 너비 의 3 분 의 1 로 필요 에 따라 변경 할 수 있 습 니 다.
Fragment 의 제거 작업 은 현재 Fragment 스 택 에서 하나씩 제거 되 었 습 니 다.더 좋 은 방법 이 있 으 면 교 류 를 환영 합 니 다.
총결산
안 드 로 이 드 가 빵 부스러기 기능 을 실현 하 는 코드(Fragment 연동 지원)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 안 드 로 이 드 빵 부스러기 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.