开源库BottomBar的使用实践

  • 1.创建res/xml/bottombar_menu.xml;

2.在 layout/activity_main.xml 中设置 BottomBar

3.在 Activity 中设置鼠标点击之后的操作

1:创建res/xml/bottombar_menu.xml:

所有的属性和行为,都在xml中进行定义

<?xml version="1.0" encoding="utf-8"?>

<tab

id=“@+id/tab_recents”

title=“Recents”

icon=“@mipmap/ic_recents”

barColorWhenSelected=“#FE3D81”

/>

<tab

id=“@+id/tab_favorites”

title=“Favorites”

icon=“@mipmap/ic_favorites”

barColorWhenSelected=“#5D3C35”

/>

<tab

id=“@+id/tab_nearby”

title=“Nearby”

icon=“@mipmap/ic_nearby”

barColorWhenSelected=“#7B1FA2”

/>

<tab

id=“@+id/tab_friends”

title=“Friends”

icon=“@mipmap/ic_friends”

barColorWhenSelected=“#FF5252”

/>

<tab

id=“@+id/tab_restaurants”

title=“Restaurants”

icon=“@mipmap/ic_restaurants”

barColorWhenSelected=“#FF9800”

/>

2. 在 layout/activity_main.xml 中设置 BottomBar:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”

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

android:layout_width=“match_parent”

android:layout_height=“match_parent”>

<FrameLayout

android:id=“@+id/contentContainer”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:layout_above=“@+id/bottomBar”/>

<com.roughike.bottombar.BottomBar

android:id=“@+id/bottomBar”

android:layout_width=“match_parent”

android:layout_height=“60dp”

android:layout_alignParentBottom=“true”

app:bb_behavior=“shifting”

app:bb_tabXmlResource=“@xml/bottombar_menu”/>

3.在 Activity 中设置鼠标点击之后的操作:

public class MainActivity extends AppCompatActivity {

private BottomBar bottomBar;

private BottomBarTab nearby;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

bottomBar = (BottomBar) findViewById(R.id.bottomBar);

bottomBar.setOnTabSelectListener(new OnTabSelectListener() {

@Override

public void onTabSelected(@IdRes int tabId) {

if (tabId == R.id.tab_favorites) {

// 选择指定 id 的标签

nearby = bottomBar.getTabWithId(R.id.tab_nearby);

nearby.setBadgeCount(5);

}

}

});

bottomBar.setOnTabReselectListener(new OnTabReselectListener() {

@Override

public void onTabReSelected(@IdRes int tabId) {

if (tabId == R.id.tab_favorites) {

// 重选标签

nearby.removeBadge();

}

}

});

bottomBar.setTabSelectionInterceptor(new TabSelectionInterceptor() {

@Override

public boolean shouldInterceptTabSelection(@IdRes int oldTabId, @IdRes int newTabId) {

// 点击无效

if (newTabId == R.id.tab_restaurants ) {

// 返回 true

return true;

}

return false;

}

});

}

}

这样做下来,我们能实现下图的效果:

bottombar实践

为了达到视觉效果最好,我们需设置图标透明度为0、纯黑色、24dp 、无填充。

查看BottomBar的属性:

<com.roughike.bottombar.BottomBar

android:id=“@+id/bottomBar”

android:layout_width=“match_parent”

android:layout_height=“60dp”

android:layout_alignParentBottom=“true”

app:bb_tabXmlResource=“@xml/bottombar_tabs_three”

app:bb_tabletMode=“true”

app:bb_behavior=“shifting|shy|underNavbar”

app:bb_inActiveTabAlpha=“0.6”

app:bb_activeTabAlpha=“1”

app:bb_inActiveTabColor=“#222222”

app:bb_activeTabColor=“@color/colorPrimary”

app:bb_titleTextAppearance=“@style/MyTextAppearance”

app:bb_titleTypeFace=“fonts/MySuperDuperFont.ttf”

app:bb_showShadow=“true” />

BottomBar包中的属性详解(通过搜索相关资料与博文,加以整合):

bb_tabXmlResource

设置标签的 xml 资源标识,在 res/xml/ 目录下。

bb_tabletMode

是否是平板模式。true:是;false:不是。

bb_behavior:(三种模式)

shifting: 选定的标签比其他的更宽。

shy: 将 Bottombar 放在 Coordinatorlayout 它会自动隐藏在滚动!(需要特定的布局)

underNavbar: 正常模式(默认)。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

文末

那么对于想坚持程序员这行的真的就一点希望都没有吗?
其实不然,在互联网的大浪淘沙之下,留下的永远是最优秀的,我们考虑的不是哪个行业差哪个行业难,就逃避掉这些,无论哪个行业,都会有他的问题,但是无论哪个行业都会有站在最顶端的那群人。我们要做的就是努力提升自己,让自己站在最顶端,学历不够那就去读,知识不够那就去学。人之所以为人,不就是有解决问题的能力吗?挡住自己的由于只有自己。
Android希望=技能+面试

  • 技能
  • 面试技巧+面试题

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

业差哪个行业难,就逃避掉这些,无论哪个行业,都会有他的问题,但是无论哪个行业都会有站在最顶端的那群人。我们要做的就是努力提升自己,让自己站在最顶端,学历不够那就去读,知识不够那就去学。人之所以为人,不就是有解决问题的能力吗?挡住自己的由于只有自己。
Android希望=技能+面试

  • 技能
    [外链图片转存中…(img-xdgBj4gL-1713605193747)]
  • 面试技巧+面试题
    [外链图片转存中…(img-ynlf4i53-1713605193749)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要添加一个底部导航栏(BottomBar),你可以按照以下步骤进行操作: 1. 首先,在你的项目中创建一个新的布局文件(例如,`activity_main.xml`)并添加一个`LinearLayout`或`RelativeLayout`作为根容器。 2. 在根容器中添加一个`FrameLayout`作为内容容器,用于显示不同的页面内容。比如: ```xml <FrameLayout android:id="@+id/content_container" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> ``` 3. 在底部导航栏之上,添加一个`LinearLayout`或`RelativeLayout`作为底部导航栏容器。比如: ```xml <LinearLayout android:id="@+id/bottom_bar_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <!-- 在这里添加底部导航栏的按钮和其他相关视图 --> </LinearLayout> ``` 4. 在`MainActivity`或其他相关的活动中,找到底部导航栏容器的引用,并添加导航按钮。你可以使用`Button`、`ImageView`或其他适合的视图来表示每个导航按钮。例如: ```java LinearLayout bottomBarContainer = findViewById(R.id.bottom_bar_container); Button homeButton = new Button(this); homeButton.setText("Home"); homeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 处理点击 Home 按钮的逻辑 } }); bottomBarContainer.addView(homeButton); ``` 5. 根据需要,为每个按钮添加点击事件处理逻辑,并在点击时更新内容容器中的页面。你可以使用`FragmentManager`来切换不同的页面。例如: ```java FragmentManager fragmentManager = getSupportFragmentManager(); homeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Fragment homeFragment = new HomeFragment(); fragmentManager.beginTransaction() .replace(R.id.content_container, homeFragment) .commit(); } }); ``` 6. 重复步骤4和步骤5,为每个导航按钮添加相应的视图和逻辑。 这样,你就可以通过底部导航栏来切换不同的页面了。记得根据你的需求进行样式和布局的调整。祝你好运!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值