【BottomBar】Androidのクールなボトム切り替え効果V 20

8161 ワード

もし本文があなたを助けるならば、私は光栄に存じません.もしあなたの时間を浪費したら、私は深く申し訳ありません.最も簡単なセリフで私のような人を助けてほしい.もし何か間違いがあったら、必ず指摘してください.みんなを誤解しないように、私を誤解しないように.本文は:www.jianshu.com/users/320 f 9...ご注目ありがとうございます.
プロジェクトアドレスはgithubです.com/roughike/Bo...新しいバージョンは古いバージョンと使い方の違いが大きいので書き直します.
注:このライブラリの最低サポートバージョンはapi 11です.
効果図を表示:
とてもクールで、木がありますか?コードを書くのも難しくありません.コードに従って2枚目の図の効果を実現します.
アイコンは完全に不透明で、純黒、24 dpで、塗りつぶしていない必要があります.
パイロットバッグ、Gradleにこれを追加:
compile 'com.roughike:bottom-bar:2.3.1'

2枚目の図を実装するには、次の手順に従います.
  • res/xml/bottombarを作成menu.xml;
  • layout/activity_main.xmlではBottomBarを設定します.
  • Activityでクリック後の操作を設定します.

  • 1.res/xml/bottombar_を作成するmenu.xml
    
    
        
        
        
        
        
    
    

    2.layout/activity_main.xmlでのBottomBarの設定
    
    
    
        
    
        
    
        
    
    
    

    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;
                }
            });
        }
    }
    

    これで,最も基本的な表示が実現される.パッケージ運転すると、2枚目の図の効果が見えます.
    他にもいくつかの機能があります
    スクロール非表示、つまり最初の図の効果を設定します.
    
    
        
    
            
    
        
    
        
    
    
    

    CoordinatorLayoutとNestedScrollViewレイアウトを使用しました.残りの使い方は同じです.
    フラットパネルモードの設定
    タブレットモードは第3図の様子です.
    
    
    	
    	
    
    	
    
    
    

    属性の詳細
    ###BottomBarのプロパティ:
    
    

    bb_tabXmlResource:res/xml/ディレクトリの下でラベルのxmlリソースIDを設定します.bb_tabletMode:フラットパネルモードかどうか.true:はい;false:いいえ.bb_behavior:(3つのモード)shifting:選択したラベルは他のより広いです.shy:BottombarをCoordinatorlayoutに置くと自動的にスクロールに隠れます!(特定のレイアウトが必要)underNavbar:通常モード(デフォルト).bb_InActiveTabAlpha:選択されていないときのラベルの透明度、iconとtitilesが役立ちます.(値:0-1)bb_ActiveTabAlpha:選択したときのラベルの透明度は、前のものに対応します.(値:0-1)bb_InActiveTabColor:選択していないときのラベルの色、iconとtitilesが役に立ちます.bb_ActiveTabColor:選択したときのラベルの色は、1つに対応します.bb_badgeBackgroundColor:Badgesの背景色を設定すると、右上に数字が表示されます.bb_badgesHideWhenActive:小さな赤い点が非表示かどうか、デフォルトはtrue非表示です.右上に数字が表示されているものです.bb_titleTextAppearance:styleを使用して、サイズ、太さなど、カスタムフォーマットを再設定します.bb_titleTypeFace:カスタムフォントを設定します.例:app:bb_titleTypeFace="fonts/MySuperDuperFont.ttf". フォントをsrc/main/assets/fonts/MySuperDuperFontに配置します.ttfパスではfonts/MySuperDuperFontと書くだけです.ttfでいいです.自動的に充填されます.bb_showShadow:シャドウを表示または非表示にするかどうかを制御します.マスクと同様に、デフォルトはtrueです.
    #### Tabs
    
    

    InActiveColor:選択されていない場合、iconとtitleに作用するラベルの色.ActiveColor:選択された場合、ラベルの色はiconとtitleに作用し、上に対応します.barColorWhenSelected:このラベルが選択されると、BottomBar全体の背景色が表示されます.badgeBackgroundColor:Badgesの背景色を設定すると、右上に数字が表示されます.badgeHidesWhenActive:このタブを選択したときにバッジを非表示にするかどうか、デフォルトはtrueです.
    ***改版後のメリット:1.APIはより簡単になります.2.すべての属性と動作はxmlで定義されます.
    確かに便利になり、理解されやすくなりました.
    元の項目は文章が始まったばかりの頃にすでに置かれていた.ここでは最も基本的なプロジェクト、すなわち本稿のコードを書きました.住所:github.com/Wing-Li/And…
    転載先:https://juejin.im/post/5bff5a8fe51d453f321944a0