原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/Android/2019/0824/614.html
名目地点:
1、样式
底部导航的action通常是3-5个,小于3个保举应用tab,大于三个常州手游开发保举应用navigation drawer
在切换的时候,应用cross-fade动画,避免视图间的横向挪动
2、Fixed、Shifting
Bottom navigation,有两种Mode:分别是Fixed、Shifting
Fixed:
Fixed bottom navigation bar
Shifting:
Shifting bottom navigation bar
3、代码完成
1.依附:
compile 'com.ashokvarma.android:bottom-navigation-bar:1.4.1'
2.结构文件:
复制代码
<com.ashokvarma.bottomnavigation.BottomNavigationBar android:id="@+id/bottom_navigation_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"/>
<!--app:bnbAutoHideEnabled="false"/>-->
复制代码
3、Activity中的完成,注意的参数
1.配置导航栏模式:setMode()
Attribute: mode_fixed, mode_shifting,mode_default
Method: setMode() Values:MODE_FIXED, MODE_SHIFTING
.setMode(BottomNavigationBar.MODE_FIXED);
2.配置常州游戏开发培训导航栏背景模式:setBackgroundStyle()
Attribute: background_style_static, background_style_ripple,background_style_default
Method:setBackgroundStyle()Values:BACKGROUND_STYLE_STATIC, BACKGROUND_STYLE_RIPPLE
.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE)
3.配置BottomNavigationItem色彩
Attributes: bnbActiveColor, bnbInactiveColor, bnbBackgroundColor Value: Color value or resource
Methods: setActiveColor, setInActiveColor, setBarBackgroundColor Value: Color value or resource
BottomNavigationItem
.setActiveColorResource(R.color.primary)
4.增加标志BadgeItem
复制代码
BadgeItem numberBadgeItem = new BadgeItem()
.setBorderWidth(4)
.setBackgroundColorResource(R.color.blue)
.setText("5")
.setHideOnSelect(autoHide.isChecked()); // TODO 掌握便签消散或不用失
bottomNavigationBar
.addItem(new BottomNavigationItem(R.drawable.ic_home_white_24dp, "Home").setActiveColorResource(R.color.orange).setBadgeItem(numberBadgeItem))
// TODO 配置 BadgeItem 默许隐藏 注意 这句代码在增加 BottomNavigationItem 之后
numberBadgeItem.hide();
复制代码
5.配置事务监听器TabChangeListener
复制代码
bottomNavigationBar.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener(){
@Override public void onTabSelected(int position) {
}
@Override public void onTabUnselected(int position) {]
}
@Override public void onTabReselected(int position) {
}
});
复制手机App外包代码
展现
MODE_FIXED+BACKGROUND_STYLE_STATIC结果
DE_FIXED+BACKGROUND_STYLE_RIPPLE结果
MODE_SHIFTING+BACKGROUND_STYLE_STATIC结果
MODE_SHIFTING+BACKGROUND_STYLE_RIPPLE结果
案例的完成
JAVA
复制代码
public class MainActivity extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener {
@BindView(R.id.bottom_navigation_bar)
BottomNavigationBar mBottomNavigationBar;
@BindView(R.id.fragment_container)
FrameLayout mFrameLayout; private BookFragment mBookFragment; private LikeFragment mLikeFragment; private UserFragment mUserFragment;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
InitNavigationBar();
} private void InitNavigationBar() {
mBottomNavigationBar.setTabSelectedListener(this);
mBottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);
mBottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);
mBottomNavigationBar
.addItem(new BottomNavigationItem(R.drawable.literature_100, "图书").setActiveColorResource(R.color.orange))
.addItem(new BottomNavigationItem(R.drawable.like_100, "珍藏").setActiveColorResource(R.color.teal))
.addItem(new BottomNavigationItem(R.drawable.user_100, "配置").setActiveColorResource(R.color.blue))
.setFirstSelectedPosition(0)
.initialise();
} /**
* 配置App开发培训默许的 */
private void setDefaultFragment() {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
mBookFragment = BookFragment.newInstance();
transaction.replace(R.id.fragment_container, mBookFragment);
transaction.commit();
}
@Override public void onTabSelected(int position) {
Log.d("onTabSelected", "onTabSelected: " + position);
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction(); switch (position) { case 0: if (mBookFragment == null) {
mBookFragment = BookFragment.newInstance();
}
transaction.replace(R.id.fragment_container, mBookFragment); break; case 1: if (mLikeFragment == null) {
mLikeFragment = LikeFragment.newInstance();
}
transaction.replace(R.id.fragment_container, mLikeFragment); break; case 2: if (mUserFragment == null) {
mUserFragment = UserFragment.newInstance();
}
transaction.replace(R.id.fragment_container, mUserFragment); break; default: break;
} // 事务提交 transaction.commit();
}
@Override public void onTabUnselected(int position) {
Log.d("onTabUnselected", "onTabUnselected: " + position);
}
@Override public void onTabReselected(int position) {
Log.d("onTabReselected", "onTabReselected: " + position);
}
}
复制常州网站开发培训代码
XML
复制代码
<?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.ryan.simplereading.MainActivity">
<FrameLayout android:id="@+id/fragment_container"
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>
复制代码
上篇:上一篇:Android多线程的四种方法
下篇:下一篇:Spinner初始化监听 onItemSelected实行两次