zoukankan      html  css  js  c++  java
  • BottomBar的用法

    先导包,在Gradle 加上这个:

    compile 'com.roughike:bottom-bar:2.0.2'

    我们来实现第二张图
    先上步骤:

    1. 创建一个res/xml/bottombar_menu.xml;
    2. 在 layout/activity_main.xml 中设置 BottomBar;
    3. 在 Activity 中设置点击之后的操作。
    1. 创建一个res/xml/bottombar_menu.xml
    <?xml version="1.0" encoding="utf-8"?>
    <tabs>
        <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"
            />
    </tabs>
    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"/>
    
    </RelativeLayout>
    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();
                    }
                }
            });
        }
    }

    到此,最基本的显示就已经实现了。
    打包运行,就可以看到第二张图的效果。

    然后还有一些其他的功能。


    设置滚动隐藏,也就是第一张图的效果

    <android.support.design.widget.CoordinatorLayout 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">
    
        <android.support.v4.widget.NestedScrollView
            android:id="@+id/myScrollingContent"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <!-- 你要显示的内容 -->
    
        </android.support.v4.widget.NestedScrollView>
    
        <com.roughike.bottombar.BottomBar
            android:id="@+id/bottomBar"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_gravity="bottom"
            app:bb_tabXmlResource="@xml/bottombar_tabs_three"
            app:bb_behavior="shy"/>
    
    </android.support.design.widget.CoordinatorLayout>

    使用了 CoordinatorLayout 和 NestedScrollView 布局。
    其余的用法是一样的。


    设置平板模式

    平板模式也就是第三图的样子。

    <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">
    
        <!-- This could be your fragment container, or something -->
        <FrameLayout
            android:id="@+id/contentContainer"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_toRightOf="@+id/bottomBar" />
    
        <com.roughike.bottombar.BottomBar
            android:id="@+id/bottomBar"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            app:bb_tabXmlResource="@xml/bottombar_tabs_three"
            app:bb_tabletMode="true" />
    
    </RelativeLayout>

    属性详解

    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" />

    bb_tabXmlResource:
    设置标签的 xml 资源标识,在 res/xml/ 目录下。
    bb_tabletMode:
    是否是平板模式。true:是;false:不是。
    bb_behavior:(三种模式)
    shifting: 选定的标签比其他的更宽。
    shy: 将 Bottombar 放在 Coordinatorlayout 它会自动隐藏在滚动!(需要特定的布局)
    underNavbar: 正常模式(默认)。
    bb_inActiveTabAlpha:
    没选中时标签的透明度,icon 和 titiles 有用。(取值:0-1)
    bb_activeTabAlpha:
    选中时标签的透明度,与上一个相对应。(取值:0-1)
    bb_inActiveTabColor:
    没选时标签的颜色,icon 和 titiles 有用。
    bb_activeTabColor:
    选中时标签的颜色,与一个相对应。
    bb_badgeBackgroundColor:
    设置 Badges 的背景色,就是右上角显示数字那个。
    bb_titleTextAppearance:
    利用 style 重新设置自定的格式,例如:大小、加粗等。
    bb_titleTypeFace:
    设置自定的字体, 例: app:bb_titleTypeFace="fonts/MySuperDuperFont.ttf"。
    将字体放在 src/main/assets/fonts/MySuperDuperFont.ttf 路径下,
    只需要写 fonts/MySuperDuperFont.ttf 即可,将自动填充。
    bb_showShadow:
    控制阴影是否显示或隐藏,类似于蒙板,默认为true。

    Tabs

    <tab
        id="@+id/tab_recents"
        title="Recents"
        icon="@drawable/empty_icon"
        inActiveColor="#00FF00"
        activeColor="#FF0000"
        barColorWhenSelected="#FF0000"
        badgeBackgroundColor="#FF0000" />

    inActiveColor:
    未被选择时,标签的颜色,作用于 icon 和 title。
    activeColor:
    被选择时,标签的颜色,作用于 icon 和 title,与上面相对应。
    barColorWhenSelected:
    当该标签被选择时,整个 BottomBar 的背景色。(就是一点,整个底部渐变的那个颜色)
    badgeBackgroundColor:
    设置 Badges 的背景色,就是右上角显示数字那个。



    此次笔记摘要大神之手,仅供学习
  • 相关阅读:
    本地安装了flash,前台浏览器还显示需要安装flash?是因为版本需要对应
    关于jsp:include 动态引入的值传递问题(数据共享问题)
    java异常
    理解定义类
    泛型
    SSM配置
    markdown基本语法
    xadmin下设置“use_bootswatch = True”无效的解决办法
    django.db.utils.DataError: (1406, "Data too long for column 'gender' at row 1")
    【转】pycharm使用中的一些快捷键
  • 原文地址:https://www.cnblogs.com/ll-ouyang/p/6725785.html
Copyright © 2011-2022 走看看