123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas/* 223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * Copyright (C) 2016 The Android Open Source Project 323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * 423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * Licensed under the Apache License, Version 2.0 (the "License"); 523e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * you may not use this file except in compliance with the License. 623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * You may obtain a copy of the License at 723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * 823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * http://www.apache.org/licenses/LICENSE-2.0 923e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * 1023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * Unless required by applicable law or agreed to in writing, software 1123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * distributed under the License is distributed on an "AS IS" BASIS, 1223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * See the License for the specific language governing permissions and 1423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * limitations under the License. 1523e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas */ 1623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas 1723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikaspackage com.example.android.support.design.widget; 1823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas 19910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikasimport android.content.res.ColorStateList; 2023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.os.Bundle; 21111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikasimport android.support.annotation.NonNull; 2223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.support.design.widget.BottomNavigationView; 2323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.support.v7.app.AppCompatActivity; 2423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.view.MenuItem; 2523e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.view.View; 2623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.widget.Button; 27111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikasimport android.widget.TextView; 2823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas 29910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikasimport com.example.android.support.design.R; 30910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas 3123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas/** 3223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * This demonstrates idiomatic usage of the bottom navigation widget. 3323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas */ 3423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikaspublic class BottomNavigationViewUsage extends AppCompatActivity { 35910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas private ColorStateList mOriginalTint; 36910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas 3723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas @Override 3823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas protected void onCreate(Bundle savedInstanceState) { 3923e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas super.onCreate(savedInstanceState); 4023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas setContentView(R.layout.design_bottom_navigation_view); 4123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas Button buttonDisable = (Button) findViewById(R.id.button_disable); 4223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas final BottomNavigationView bottom = 4323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas (BottomNavigationView) findViewById(R.id.bottom_navigation); 44910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas mOriginalTint = bottom.getItemIconTintList(); 4523e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas buttonDisable.setOnClickListener(new View.OnClickListener() { 4623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas @Override 4723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas public void onClick(View view) { 4823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas bottom.getMenu().getItem(0).setEnabled(!bottom.getMenu().getItem(0).isEnabled()); 4923e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas } 5023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas }); 5123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas Button buttonAdd = (Button) findViewById(R.id.button_add); 5223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas buttonAdd.setOnClickListener(new View.OnClickListener() { 5323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas @Override 5423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas public void onClick(View view) { 553cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas if (bottom.getMenu().size() < 5) { 563cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas MenuItem item = bottom.getMenu().add("Bananas"); 573cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas item.setIcon(android.R.drawable.ic_lock_power_off); 583cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas } 593cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas } 603cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas }); 613cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas Button buttonRemove = (Button) findViewById(R.id.button_remove); 623cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas buttonRemove.setOnClickListener(new View.OnClickListener() { 633cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas @Override 643cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas public void onClick(View view) { 653cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas bottom.getMenu().removeItem(0); 6623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas } 6723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas }); 68910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas Button buttonTint = (Button) findViewById(R.id.button_tint); 69910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas buttonTint.setOnClickListener(new View.OnClickListener() { 70910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas @Override 71910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas public void onClick(View view) { 72910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas if (bottom.getItemIconTintList() == null) { 73910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas bottom.setItemIconTintList(mOriginalTint); 74910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas } else { 75910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas bottom.setItemIconTintList(null); 76910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas } 77910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas } 78910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas }); 79111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas final TextView selectedItem = (TextView) findViewById(R.id.selected_item); 80111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas bottom.setOnNavigationItemSelectedListener( 81111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas new BottomNavigationView.OnNavigationItemSelectedListener() { 82111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas @Override 83111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas public boolean onNavigationItemSelected(@NonNull MenuItem item) { 84111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas switch (item.getItemId()) { 85111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas case R.id.action_search: 86111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas selectedItem.setText("Entering searching mode"); 87111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas break; 88111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas case R.id.action_settings: 89111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas selectedItem.setText("Entering settings!?!"); 90111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas break; 91111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas case R.id.action_music: 92111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas selectedItem.setText("Play some music"); 93111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas break; 94111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas default: 95111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas selectedItem.setText("Selected " + item.getTitle()); 96111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas } 97578015fc3e5ddc0fdb95db7ad0d00822c54be6dfAurimas Liutikas return true; 98111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas } 99111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas }); 10023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas } 10123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas} 102