专栏首页恩蓝脚本Android使用BottomTabBar实现底部导航页效果

Android使用BottomTabBar实现底部导航页效果

1. 导依赖

compile 'com.hjm:BottomTabBar:1.1.1'

2. 在所实现的XML中定义一下该控件

<com.hjm.bottomtabbar.BottomTabBar
  android:id="@+id/bottom_tab_bar"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
   
</com.hjm.bottomtabbar.BottomTabBar 

3. 定义每个Fragment,这里列举一个

public class OneFragment extends Fragment{
  @Nullable
  @Override
  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment1, container, false);
    return view;
  }
}

4. MainActivity中

//Fragment页面设置页
public class MainActivity extends AppCompatActivity {
  private BottomTabBar bottomTabBar;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    bottomTabBar = findViewById(R.id.bottom_tab_bar);
    //初始化Fragment
    bottomTabBar.init(getSupportFragmentManager())
        .setImgSize(50, 50)   //图片大小
        .setFontSize(12)            //字体大小
        .setTabPadding(4, 6, 10)//选项卡的间距
        .setChangeColor(Color.RED, Color.BLUE)   //选项卡的选择颜色
        .addTabItem("首页", R.drawable.home_, ShouYe_Fragment.class)
        .addTabItem("分类", R.drawable.classify, FenLei_Fragment.class)
        .addTabItem("发现", R.drawable.cart, Cart_Fragment.class)
        .addTabItem("我的", R.drawable.mine, Mine_Fragment.class)
        .isShowDivider(true)  //是否包含分割线
        .setOnTabChangeListener(new BottomTabBar.OnTabChangeListener() {
          @Override
          public void onTabChange(int position, String name) {
            Log.i("TGA", "位置:" + position + "   选项卡:" + name);
          }
        });
  }
}

效果图:

下面通过实例代码介绍下 Android_BottomTabBar

一:依赖

compile 'com.hjm:BottomTabBar:1.1.1'

二:布局

<com.hjm.bottomtabbar.BottomTabBar 
    android:id="@+id/bottomTabBar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"  
  </com.hjm.bottomtabbar.BottomTabBar  

三:代码

public class MainActivity extends AppCompatActivity { 
  @BindView(R.id.bottomtabbar) 
  BottomTabBar bottomtabbar; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ButterKnife.bind(this); 
    bottomtabbar.init(getSupportFragmentManager()) 
        .setImgSize(25, 25) 
        .setFontSize(8) 
        .setTabPadding(4, 6, 10) 
        .setChangeColor(Color.RED, Color.BLACK) 
        .addTabItem("精选", R.drawable.choiceness, ChoicenessFragment.class) 
        .addTabItem("专题", R.drawable.dissertation, DissertationFragment.class) 
        .addTabItem("发现", R.drawable.discover, DiscoverFragment.class) 
        .addTabItem("我的", R.drawable.my, MyFragment.class) 
        .isShowDivider(false) 
        .setOnTabChangeListener(new BottomTabBar.OnTabChangeListener() { 
          @Override 
          public void onTabChange(int position, String name) { 
          } 
        }) 
        .setTabBarBackgroundResource(R.drawable.bottom_bg) 
        .setBackgroundResource(R.drawable.bg_blue); 
  } 
} 

总结

以上所述是小编给大家介绍的Android使用BottomTabBar实现底部导航页效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android Fragment的用法实例详解

    碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示。Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了。

    砸漏
  • AndroidX下使用Activity和Fragment的变化详解

    过去的一段时间,AndroidX 软件包下的 Activity/Fragmet 的 API 发生了很多变化。让我们看看它们是如何提升Android 的开发效率以...

    砸漏
  • Laravel 使用查询构造器配合原生sql语句查询的例子

    在很多复杂查询时, 往往需要原生语句进行查询, 在 laravel 中, 我们可以这样使用原生查询

    砸漏
  • OC 对象的本质

    用户1890628
  • 如何选择物联网软件开发供应商

    数以千计的物联网软件开发供应商形成了混乱的生态系统市场。您怎么知道哪个适合您的业务解决方案?

    用户4122690
  • MySQL(九)之数据表的查询详解(SELECT语法)二

    上一篇讲了比较简单的单表查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等。希望大家能都得到帮助! 在开始...

    用户1195962
  • js---BOM 的理解方法

    window.alert("message"); //弹出一个具有OK按钮的系统消息框,显示指定的文本

    小蔚
  • Vivado IP的添加、modelsim-se仿真库的生成以及联合仿真

    本节主要是将《Vivado hls 入门一》和《Vivado HLS入门二》生成的fir滤波器的IP在vivado下进行IP的添加以及联合modelsim的仿...

    FPGA开源工作室
  • mysql的事物隔离级别详解

    MySQL是一个服务器/客户端架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称之为一个会话(Session)...

    挑战者
  • MySQL事务隔离级别和MVCC

    MySQL是一个服务器/客户端架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称之为一个会话(Session)...

    南风

扫码关注云+社区

领取腾讯云代金券