美文网首页
2018-07-23

2018-07-23

作者: 我大大个 | 来源:发表于2018-07-23 07:48 被阅读0次

    依赖

    //BottomNavigation

    implementation 'com.ashokvarma.android:bottom-navigation-bar:2.0.4'

    页面

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity">

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    android:id="@+id/td"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal">

    android:id="@+id/bottom_bar"

    android:layout_width="match_parent"

    android:layout_alignParentBottom="true"

    android:layout_height="50dp"/>

    主页面的简单操作

    public class MainActivity_Lian extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener{

    private BottomNavigationBar bottomNavigationBar;

    private String TAG = MainActivity.class.getSimpleName();

    private Fragment_home fragment_home;

    private Fragment_dingdan fragment_dingdan;

    private Fragment_wode fragment_wode;

        @Override

        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

            /**

            * 获得组件

            */

            bottomNavigationBar = findViewById(R.id.bottom_bar);

            /**

            * 导航基础设置 包括按钮选中效果 导航栏背景色等

            */

            bottomNavigationBar

                    .setTabSelectedListener(this)

                    /**

                    *  setMode() 内的参数有三种模式类型:

    *  MODE_DEFAULT 自动模式:导航栏Item的个数<=3用MODE_FIXED模式,否则用MODE_SHIFTING模式

    *MODE_FIXED固定模式:未选中的Item显示文字,无切换动画效果。

    *MODE_SHIFTING切换模式:未选中的Item不显示文字,选中的显示文字,有切换动画效果。

                    */

    .setMode(BottomNavigationBar.MODE_FIXED)

                    /**

    *setBackgroundStyle() 内的参数有三种样式

    *BACKGROUND_STYLE_DEFAULT:默认样式 如果设置的Mode为MODE_FIXED,将使用BACKGROUND_STYLE_STATIC

    *                                    如果Mode为MODE_SHIFTING将使用BACKGROUND_STYLE_RIPPLE。

    *BACKGROUND_STYLE_STATIC:静态样式 点击无波纹效果

    *BACKGROUND_STYLE_RIPPLE:波纹样式 点击有波纹效果

                    */

    .setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);

    //.setActiveColor("#FF107FFD") //选中颜色

    //.setInActiveColor("#e9e6e6") //未选中颜色

    //.setBarBackgroundColor("#fff");//导航栏背景色

            /**

            * 添加导航按钮

            */

    bottomNavigationBar

    .addItem(newBottomNavigationItem(R.drawable.home_pressed,"首页")//选中的状态的图片

    .setInactiveIconResource(R.drawable.home_normal)//没有选中的状态的图标

    .setActiveColorResource(R.color.colorBlack)//选中字体颜色

    .setInActiveColorResource(R.color.colorGray)//未选中字体颜色

                    );

    bottomNavigationBar.addItem(newBottomNavigationItem(R.drawable.my_pressed,"订单")

    .setInactiveIconResource(R.drawable.my_normal)//没有选中的状态的图标

    .setActiveColorResource(R.color.colorBlack)//选中字体颜色

    .setInActiveColorResource(R.color.colorGray)//未选中字体颜色

            );

    bottomNavigationBar.addItem(newBottomNavigationItem(R.drawable.home_active,"我的")

    .setInactiveIconResource(R.drawable.homea)//没有选中的状态的图标

    .setActiveColorResource(R.color.colorBlack)//选中字体颜色

    .setInActiveColorResource(R.color.colorGray)//未选中字体颜色

            );

            //默认选中

    bottomNavigationBar.setFirstSelectedPosition(0);

    bottomNavigationBar.initialise();

    bottomNavigationBar.setTabSelectedListener(this);

    setDefaultFragment();

        }

        /**

        * 设置默认导航栏

        */

    privatevoidsetDefaultFragment() {

    fragment_home=Fragment_home.newInstance("首页");

    getSupportFragmentManager().beginTransaction().replace(R.id.td,fragment_home).commit();

        }

    @Override

    publicvoidonTabSelected(intposition) {

    switch(position){

    case0:

    if(fragment_home==null){

    fragment_home=Fragment_home.newInstance("首页");

                    }

    getSupportFragmentManager().beginTransaction().replace(R.id.td,fragment_home).commit();

    break;

    case1:

    if(fragment_dingdan==null){

    fragment_dingdan=Fragment_dingdan.newInstance("订单");

                    }

    getSupportFragmentManager().beginTransaction().replace(R.id.td,fragment_dingdan).commit();

    break;

    case2:

    if(fragment_wode==null){

    fragment_wode=Fragment_wode.newInstance("我的");

                    }

    getSupportFragmentManager().beginTransaction().replace(R.id.td,fragment_wode).commit();

    break;

    default:

    break;

            }

        }

        /**

    * 设置未选中Fragment事务

        */

    @Override

    publicvoidonTabUnselected(intposition) {

        }

        /**

    * 设置释放Fragment事务

        */

    @Override

    publicvoidonTabReselected(intposition) {

        }

    相关文章

      网友评论

          本文标题:2018-07-23

          本文链接:https://www.haomeiwen.com/subject/qhldmftx.html