안 드 로 이 드 바 텀 네 비게 이 션 바 쿨 네 비게 이 션 바
10052 단어 androidtabhost항 법프 래 그 먼 트 상태
두 블 로 그 를 참고 해 Fragment 상태 로 저 장 된 BottomNavigation Bar 를 썼 다.
전재 출처 를 밝 혀 주 십시오:http://www.open-open.com/lib/view/open1465996383855.html
전재 출처 를 밝 혀 주 십시오:http://blog.csdn.net/guolin_blog/article/details/13171191
국제관례
MODE_FIXED+BACKGROUND_STYLE_STATIC 효과
MODE_SHIFTING+BACKGROUND_STYLE_STATIC 효과
MODE_FIXED+BACKGROUND_STYLE_RIPPLE 효과
MODE_SHIFTING+BACKGROUND_STYLE_RIPPLE 효과
compile 'com.ashokvarma.android:bottom-navigation-bar:1.2.0'
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.wangchang.testbottomnavigationbar.MainActivity">
<FrameLayout android:id="@+id/layFrame" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" />
<com.ashokvarma.bottomnavigation.BottomNavigationBar android:id="@+id/bottom_navigation_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" />
</LinearLayout>
bottomNavigationBar.setMode(BottomNavigationBar.MODE_SHIFTING);
bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);
/** * */
BadgeItem numberBadgeItem = new BadgeItem()
.setBorderWidth(4)
.setBackgroundColor(Color.RED)
.setText("5")
.setHideOnSelect(true);
/** * tab */
bottomNavigationBar
.addItem(new BottomNavigationItem(R.mipmap.ic_book_white_24dp, "Books").setActiveColorResource(R.color.teal).setBadgeItem(numberBadgeItem))
.addItem(new BottomNavigationItem(R.mipmap.ic_music_note_white_24dp, "Music").setActiveColorResource(R.color.blue))
.addItem(new BottomNavigationItem(R.mipmap.ic_tv_white_24dp, "Movies & TV").setActiveColorResource(R.color.brown))
.addItem(new BottomNavigationItem(R.mipmap.ic_videogame_asset_white_24dp, "Games").setActiveColorResource(R.color.grey).setBadgeItem(numberBadgeItem))
.initialise();
/** * * , */
onTabSelected(0);
bottomNavigationBar.setTabSelectedListener(this);
다음은 중요 한 부분 입 니 다. Fragment 상 태 를 저장 합 니 다.
@Override
public void onTabSelected(int position) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
/** * Fragment * transaction.add(); * , transaction.show(); * Fragment */
hideFragment(transaction);
switch (position) {
case 0:
if (bookFragment == null) {
bookFragment = new BookFragment();
transaction.add(R.id.layFrame, bookFragment);
list.add(bookFragment);
} else {
transaction.show(bookFragment);
}
break;
case 1:
if (musicFragment == null) {
musicFragment = new MusicFragment();
transaction.add(R.id.layFrame, musicFragment);
list.add(musicFragment);
} else {
transaction.show(musicFragment);
}
break;
case 2:
if (tvFragment == null) {
tvFragment = new TvFragment();
transaction.add(R.id.layFrame, tvFragment);
list.add(tvFragment);
} else {
transaction.show(tvFragment);
}
break;
case 3:
if (gameFragment == null) {
gameFragment = new GameFragment();
transaction.add(R.id.layFrame, gameFragment);
list.add(gameFragment);
} else {
transaction.show(gameFragment);
}
break;
}
transaction.commit();
}
프 래 그 먼 트 숨 기기
/** * @param transaction */
public void hideFragment(FragmentTransaction transaction) {
for (Fragment fragment : list) {
transaction.hide(fragment);
}
}
조각 배치 가 간단 합 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical">
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="book" />
</LinearLayout>
여기에 작은 문제 가 하나 더 있 습 니 다. 5 개의 탭 을 추 가 했 을 때 Fragment 상 태 를 저장 하고 두 번 째 탭 으로 전환 할 때 문제 가 생 겨 서 정상적으로 전환 할 수 없습니다. 관심 있 는 파트너 가 시도 해 보 세 요!
효과 도
위의 두 편의 박문 을 종합 하여 자신 이 이 띠 상태 로 저 장 된 BottomNavigation Bar 를 쓴 것 은 여전히 멋있다 고 느 꼈 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.