Site icon C1CTech

Android BottomNavigationView Example in Kotlin

&NewLine;<p class&equals;"p1">This article is about Android <span class&equals;"s1" style&equals;"color&colon; &num;008000&semi;"><b>BottomNavigationView<&sol;b><&sol;span> &lpar;represents a standard bottom navigation bar for application&rpar; and how to combine it with Fragments with the help of a simple application&period;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<div class&equals;"wp-block-buttons is-content-justification-center is-layout-flex wp-block-buttons-is-layout-flex"> &NewLine;<div class&equals;"wp-block-button"><a class&equals;"wp-block-button&lowbar;&lowbar;link has-white-color has-text-color has-background" style&equals;"background-color&colon; &num;520599&semi;" href&equals;"https&colon;&sol;&sol;github&period;com&sol;arunk7839&sol;AndroidBottomNavigationViewExp" target&equals;"&lowbar;blank" rel&equals;"noreferrer noopener"><strong>DOWNLOAD CODE<&sol;strong><&sol;a><&sol;div> &NewLine;<&sol;div> &NewLine;<p><span class&equals;"embed-youtube" style&equals;"text-align&colon;center&semi; display&colon; block&semi;"><amp-youtube data-videoid&equals;"a5nb7fhLCfE" data-param-rel&equals;"1" data-param-showsearch&equals;"0" data-param-showinfo&equals;"1" data-param-iv&lowbar;load&lowbar;policy&equals;"1" data-param-fs&equals;"1" data-param-hl&equals;"en-US" data-param-autohide&equals;"2" data-param-wmode&equals;"transparent" width&equals;"1200" height&equals;"675" layout&equals;"responsive"><a href&equals;"https&colon;&sol;&sol;www&period;youtube&period;com&sol;watch&quest;v&equals;a5nb7fhLCfE" placeholder><amp-img src&equals;"https&colon;&sol;&sol;i&period;ytimg&period;com&sol;vi&sol;a5nb7fhLCfE&sol;hqdefault&period;jpg" alt&equals;"YouTube Poster" layout&equals;"fill" object-fit&equals;"cover"><noscript><img src&equals;"https&colon;&sol;&sol;i&period;ytimg&period;com&sol;vi&sol;a5nb7fhLCfE&sol;hqdefault&period;jpg" loading&equals;"lazy" decoding&equals;"async" alt&equals;"YouTube Poster"><&sol;noscript><&sol;amp-img><&sol;a><&sol;amp-youtube><&sol;span><&sol;p> &NewLine;<h4><span class&equals;"s1" style&equals;"color&colon; &num;000080&semi;"><b>BottomNavigationView<&sol;b><&sol;span><&sol;h4> &NewLine; &NewLine; &NewLine; &NewLine;<ul class&equals;"wp-block-list"> &NewLine;<li class&equals;"p1"><span class&equals;"s1" style&equals;"color&colon; &num;008000&semi;"><a style&equals;"color&colon; &num;008000&semi;" href&equals;"https&colon;&sol;&sol;developer&period;android&period;com&sol;reference&sol;com&sol;google&sol;android&sol;material&sol;bottomnavigation&sol;BottomNavigationView"><b>BottomNavigationView<&sol;b><&sol;a><&sol;span> makes it easy for users to explore and switch between top-level views in a single tap&period;<&sol;li> &NewLine;<li>It should be used when the app has three to five top-level navigations&period;<&sol;li> &NewLine;<li>When there are <strong><span style&equals;"color&colon; &num;008000&semi;">two<&sol;span><&sol;strong> top-level destinations then use <span style&equals;"color&colon; &num;0000ff&semi;"><strong>Tabs<&sol;strong><&sol;span> but If Destinations are more than <strong><span style&equals;"color&colon; &num;008000&semi;">five<&sol;span><&sol;strong> then use the <span style&equals;"color&colon; &num;0000ff&semi;"><a style&equals;"color&colon; &num;0000ff&semi;" href&equals;"https&colon;&sol;&sol;material&period;io&sol;components&sol;navigation-drawer"><span class&equals;"s1"><b>Navigation Drawer<&sol;b><&sol;span><&sol;a><&sol;span>&period;<&sol;li> &NewLine;<li>Bottom navigation should be used for <span style&equals;"font-size&colon; 16px&semi; font-family&colon; -apple-system&comma; BlinkMacSystemFont&comma; 'Segoe UI'&comma; Roboto&comma; Oxygen-Sans&comma; Ubuntu&comma; Cantarell&comma; 'Helvetica Neue'&comma; sans-serif&semi;">Top-level destinations that need to be accessible from anywhere in the app&period;<&sol;span><&sol;li> &NewLine;<li class&equals;"p1">When the user taps on the icon it will change the top-level view accordingly&period;<&sol;li> &NewLine;<&sol;ul> &NewLine; &NewLine; &NewLine; &NewLine;<p>The following is an example of the Bottom Navigation bar&colon;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<h4 class&equals;"wp-block-heading"><span style&equals;"color&colon; &num;000080&semi;"><strong>Creating new project<&sol;strong><&sol;span><&sol;h4> &NewLine; &NewLine; &NewLine; &NewLine;<p>1 &period; Create a new project by going to <span style&equals;"color&colon; &num;008000&semi;"><b>File <&sol;b><span class&equals;"s1"><b>&Implies;<&sol;b><&sol;span><&sol;span><b><span style&equals;"color&colon; &num;008000&semi;"> New Android Project<&sol;span>&comma;<&sol;b> select <span style&equals;"color&colon; &num;008000&semi;"><strong>Empty Activity<&sol;strong><&sol;span>&comma; provide <span style&equals;"color&colon; &num;008000&semi;"><strong>app name<&sol;strong><&sol;span>&comma; select language to <strong><span style&equals;"color&colon; &num;008000&semi;">kotlin<&sol;span> <&sol;strong>and then finally click on <span style&equals;"color&colon; &num;0000ff&semi;"><strong>finish<&sol;strong><&sol;span>&period;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<p>2 &period; Open app-level <span style&equals;"color&colon; &num;008000&semi;"><strong>build&period;gradle<&sol;strong><&sol;span> file&comma; add the dependency of<strong><span style&equals;"color&colon; &num;008000&semi;"> material design<&sol;span><&sol;strong> in the dependencies section&comma; and <strong><span style&equals;"color&colon; &num;0000ff&semi;">sync<&sol;span><&sol;strong> the project&period;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<p><span style&equals;"color&colon; &num;0000ff&semi;"><strong>build&period;gradle<&sol;strong><&sol;span><&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<pre class&equals;"wp-block-preformatted">dependencies &lbrace; &NewLine; <strong><span style&equals;"color&colon; &num;008000&semi;"> &sol;&sol;material design<&sol;span><&sol;strong> &NewLine; implementation 'com&period;google&period;android&period;material&colon;material&colon;1&period;5&period;0-alpha01' &NewLine;&rcub;<&sol;pre> &NewLine; &NewLine; &NewLine; &NewLine;<p>Find the latest version of the material design from <a class&equals;"markup--anchor" href&equals;"https&colon;&sol;&sol;maven&period;google&period;com&sol;web&sol;index&period;html&quest;q&equals;material&num;com&period;google&period;android&period;material&colon;material" target&equals;"&lowbar;blank" rel&equals;"noopener"><span style&equals;"color&colon; &num;0000ff&semi;"><strong>here<&sol;strong><&sol;span>&period;<&sol;a><&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<p>3 &period; As the Bottom Navigation items are rendered using a menu file&comma; create a new xml file named <span style&equals;"color&colon; &num;008000&semi;"><b>bottom&lowbar;navigation&lowbar;menu<&sol;b><strong>&period;xml<&sol;strong><&sol;span> under <span style&equals;"color&colon; &num;0000ff&semi;"><strong>res &Implies; menu<&sol;strong><&sol;span> folder&period;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<p><span style&equals;"color&colon; &num;0000ff&semi;"><b>bottom&lowbar;navigation&lowbar;menu&period;xml<&sol;b><&sol;span><&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<pre class&equals;"wp-block-preformatted">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"utf-8"&quest;&gt&semi; &NewLine;&lt&semi;menu xmlns&colon;android&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res&sol;android"&gt&semi; &NewLine; &lt&semi;item &NewLine; android&colon;id&equals;"&commat;&plus;id&sol;nav&lowbar;home" &NewLine; android&colon;title&equals;"Home" &NewLine; android&colon;enabled&equals;"true" &NewLine; android&colon;icon&equals;"&commat;drawable&sol;ic&lowbar;home"&sol;&gt&semi; &NewLine; &lt&semi;item &NewLine; android&colon;id&equals;"&commat;&plus;id&sol;nav&lowbar;search" &NewLine; android&colon;title&equals;"Search" &NewLine; android&colon;enabled&equals;"true" &NewLine; android&colon;icon&equals;"&commat;drawable&sol;ic&lowbar;search"&sol;&gt&semi; &NewLine; &lt&semi;item &NewLine; android&colon;id&equals;"&commat;&plus;id&sol;nav&lowbar;radio" &NewLine; android&colon;title&equals;"Radio" &NewLine; android&colon;enabled&equals;"true" &NewLine; android&colon;icon&equals;"&commat;drawable&sol;ic&lowbar;radio"&sol;&gt&semi; &NewLine; &lt&semi;item &NewLine; android&colon;id&equals;"&commat;&plus;id&sol;nav&lowbar;my&lowbar;music" &NewLine; android&colon;title&equals;"My Music" &NewLine; android&colon;enabled&equals;"true" &NewLine; android&colon;icon&equals;"&commat;drawable&sol;ic&lowbar;music"&sol;&gt&semi; &NewLine; &lt&semi;item &NewLine; android&colon;id&equals;"&commat;&plus;id&sol;nav&lowbar;library" &NewLine; android&colon;title&equals;"Library" &NewLine; android&colon;enabled&equals;"true" &NewLine; android&colon;icon&equals;"&commat;drawable&sol;ic&lowbar;library"&sol;&gt&semi; &NewLine;&lt&semi;&sol;menu&gt&semi;<&sol;pre> &NewLine; &NewLine; &NewLine; &NewLine;<p>4 &period; Create a new Fragment &lpar;named <span style&equals;"color&colon; &num;008000&semi;"><strong>HomeFragment&period;kt<&sol;strong><&sol;span>&rpar; for the <strong><span style&equals;"color&colon; &num;0000ff&semi;">home<&sol;span><&sol;strong> menu item by going to <span style&equals;"color&colon; &num;0000ff&semi;"><strong>root &Implies; New &Implies; Fragment &Implies; Fragment &lpar;Blank&rpar;<&sol;strong>&period;<&sol;span><&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<p><span style&equals;"color&colon; &num;0000ff&semi;"><strong>HomeFragment&period;kt<&sol;strong><&sol;span><&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<pre class&equals;"wp-block-preformatted">package com&period;c1ctech&period;androidbottomnavviewexp &NewLine; &NewLine;import android&period;os&period;Bundle &NewLine;import androidx&period;fragment&period;app&period;Fragment &NewLine;import android&period;view&period;LayoutInflater &NewLine;import android&period;view&period;View &NewLine;import android&period;view&period;ViewGroup &NewLine; &NewLine;class HomeFragment &colon; Fragment&lpar;&rpar; &lbrace; &NewLine; &NewLine; override fun onCreateView&lpar; &NewLine; inflater&colon; LayoutInflater&comma; container&colon; ViewGroup&quest;&comma; &NewLine; savedInstanceState&colon; Bundle&quest; &NewLine; &rpar;&colon; View&quest; &lbrace; &NewLine; <strong><span style&equals;"color&colon; &num;008000&semi;"> &sol;&sol; Inflate the layout for this fragment<&sol;span><&sol;strong> &NewLine; return inflater&period;inflate&lpar;R&period;layout&period;fragment&lowbar;home&comma; container&comma; false&rpar; &NewLine; &rcub; &NewLine; &NewLine; companion object &lbrace; &NewLine; fun newInstance&lpar;&rpar; &equals; HomeFragment&lpar;&rpar; &NewLine; &rcub; &NewLine;&rcub;<&sol;pre> &NewLine; &NewLine; &NewLine; &NewLine;<p>5 &period; Open <span style&equals;"color&colon; &num;008000&semi;"><strong>fragment&lowbar;home&period;xml<&sol;strong> <&sol;span>and add the below TextView&period;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<pre class&equals;"wp-block-preformatted">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"utf-8"&quest;&gt&semi; &NewLine;&lt&semi;androidx&period;constraintlayout&period;widget&period;ConstraintLayout xmlns&colon;android&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res&sol;android" &NewLine; xmlns&colon;tools&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;tools" &NewLine; android&colon;layout&lowbar;width&equals;"match&lowbar;parent" &NewLine; android&colon;layout&lowbar;height&equals;"match&lowbar;parent" &NewLine; xmlns&colon;app&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res-auto" &NewLine; tools&colon;context&equals;"&period;HomeFragment"&gt&semi; &NewLine; &NewLine; &lt&semi;TextView &NewLine; android&colon;layout&lowbar;width&equals;"wrap&lowbar;content" &NewLine; android&colon;layout&lowbar;height&equals;"wrap&lowbar;content" &NewLine; android&colon;text&equals;"Home" &NewLine; android&colon;textSize&equals;"30sp" &NewLine; android&colon;textStyle&equals;"bold" &NewLine; app&colon;layout&lowbar;constraintBottom&lowbar;toBottomOf&equals;"parent" &NewLine; app&colon;layout&lowbar;constraintEnd&lowbar;toEndOf&equals;"parent" &NewLine; app&colon;layout&lowbar;constraintStart&lowbar;toStartOf&equals;"parent" &NewLine; app&colon;layout&lowbar;constraintTop&lowbar;toTopOf&equals;"parent" &sol;&gt&semi; &NewLine; &NewLine;&lt&semi;&sol;androidx&period;constraintlayout&period;widget&period;ConstraintLayout&gt&semi;<&sol;pre> &NewLine; &NewLine; &NewLine; &NewLine;<p>6 &period; Similarly&comma; create fragments and their layout for the other four menu Items also&period;<&sol;p>&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 3&period;0&period;1 -->&NewLine;<div class&equals;"quads-location quads-ad2" id&equals;"quads-ad2" style&equals;"float&colon;none&semi;margin&colon;0px&semi;">&NewLine;&NewLine;<&sol;div>&NewLine; &NewLine; &NewLine; &NewLine; &NewLine;<p class&equals;"p1">7 &period; Open the layout file of the MainActivity i&period;e <b><span style&equals;"color&colon; &num;008000&semi;">activity&lowbar;main&period;xml<&sol;span>&comma;<&sol;b> add <span style&equals;"color&colon; &num;0000ff&semi;"><b>BottomNavigationView<&sol;b><&sol;span> widget and also add a <span style&equals;"color&colon; &num;0000ff&semi;"><b>FrameLayout<&sol;b><&sol;span> to load the <span style&equals;"color&colon; &num;008000&semi;"><b>Fragments<&sol;b><&sol;span> when the navigation item is selected&period;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<p><span style&equals;"color&colon; &num;0000ff&semi;"><b>activity&lowbar;main&period;xml<&sol;b><&sol;span><&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<pre class&equals;"wp-block-preformatted">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"utf-8"&quest;&gt&semi; &NewLine;&lt&semi;RelativeLayout &NewLine; xmlns&colon;android&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res&sol;android" &NewLine; android&colon;layout&lowbar;width&equals;"match&lowbar;parent" &NewLine; android&colon;layout&lowbar;height&equals;"match&lowbar;parent" &NewLine; xmlns&colon;app&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res-auto"&gt&semi; &NewLine; &NewLine; &lt&semi;FrameLayout &NewLine; android&colon;id&equals;"&commat;&plus;id&sol;fragment&lowbar;container" &NewLine; android&colon;layout&lowbar;width&equals;"match&lowbar;parent" &NewLine; android&colon;layout&lowbar;height&equals;"match&lowbar;parent" &NewLine; android&colon;layout&lowbar;above&equals;"&commat;id&sol;bottom&lowbar;navigation" &NewLine; &sol;&gt&semi; &NewLine; &NewLine; &lt&semi;com&period;google&period;android&period;material&period;bottomnavigation&period;BottomNavigationView &NewLine; android&colon;id&equals;"&commat;&plus;id&sol;bottom&lowbar;navigation" &NewLine; android&colon;layout&lowbar;alignParentBottom&equals;"true" &NewLine; android&colon;layout&lowbar;width&equals;"match&lowbar;parent" &NewLine; android&colon;layout&lowbar;height&equals;"wrap&lowbar;content" &NewLine; android&colon;layout&lowbar;gravity&equals;"bottom" &NewLine; app&colon;menu&equals;"&commat;menu&sol;bottom&lowbar;navigation&lowbar;menu" &NewLine; android&colon;background&equals;"&commat;color&sol;colorPrimary" &NewLine; app&colon;itemIconTint&equals;"&commat;android&colon;color&sol;white" &NewLine; app&colon;itemTextColor&equals;"&commat;android&colon;color&sol;white"&sol;&gt&semi; &NewLine; &NewLine;&lt&semi;&sol;RelativeLayout&gt&semi;<&sol;pre> &NewLine; &NewLine; &NewLine; &NewLine;<ul class&equals;"wp-block-list"> &NewLine;<li class&equals;"p1"><span style&equals;"color&colon; &num;0000ff&semi;"><b>app&colon;menu<&sol;b><&sol;span>&hairsp;&colon;&hairsp;The menu resource file to display the navigation items along with icon and text&period;<&sol;li> &NewLine;<li class&equals;"p1"><span style&equals;"color&colon; &num;0000ff&semi;"><b>app&colon;itemBackground<&sol;b>&hairsp;&colon; <&sol;span>Applies background color to bottom navigation&period;<&sol;li> &NewLine;<li class&equals;"p1"><span style&equals;"color&colon; &num;0000ff&semi;"><b>app&colon;itemTextColor<&sol;b><&sol;span>&colon; The text color of bottom navigation item&period;<&sol;li> &NewLine;<li class&equals;"p1"><span style&equals;"color&colon; &num;0000ff&semi;"><b>app&colon;itemIconTint<&sol;b>&hairsp;&colon; <&sol;span>The icon color of bottom navigation item&period;<&sol;li> &NewLine;<&sol;ul> &NewLine; &NewLine; &NewLine; &NewLine;<p>The <span style&equals;"color&colon; &num;008000&semi;"><strong><span class&equals;"inline-code">labelVisibilityMode<&sol;span><&sol;strong><&sol;span> attribute can be used to adjust the behavior of the text labels for each navigation item&period;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<p>There are four visibility modes&colon;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<ul class&equals;"wp-block-list"> &NewLine;<li><strong><span style&equals;"color&colon; &num;0000ff&semi;"><span class&equals;"inline-code">LABEL&lowbar;VISIBILITY&lowbar;AUTO<&sol;span> &lpar;default&rpar;&colon;<&sol;span><&sol;strong> The label behaves as &OpenCurlyDoubleQuote;labeled” when there are 3 items or less&comma; or &OpenCurlyDoubleQuote;selected” when there are 4 items or more<&sol;li> &NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong><span class&equals;"inline-code">LABEL&lowbar;VISIBILITY&lowbar;SELECTED<&sol;span><&sol;strong><&sol;span>&colon; The label is only shown on the selected navigation item<&sol;li> &NewLine;<li><strong><span class&equals;"inline-code" style&equals;"color&colon; &num;0000ff&semi;">LABEL&lowbar;VISIBILITY&lowbar;LABELED<&sol;span><&sol;strong>&colon; The label is shown on all navigation items<&sol;li> &NewLine;<li><strong><span class&equals;"inline-code" style&equals;"color&colon; &num;0000ff&semi;">LABEL&lowbar;VISIBILITY&lowbar;UNLABELED<&sol;span><&sol;strong>&colon; The label is hidden for all navigation items<&sol;li> &NewLine;<&sol;ul> &NewLine; &NewLine; &NewLine; &NewLine;<p class&equals;"p1">8 &period; Open <span style&equals;"color&colon; &num;008000&semi;"><b>MainActivity&period;kt<&sol;b><&sol;span> and add the below code&colon;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<p><span style&equals;"color&colon; &num;0000ff&semi;"><b>MainActivity&period;kt<&sol;b><&sol;span><&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<pre class&equals;"wp-block-preformatted">package com&period;c1ctech&period;androidbottomnavviewexp &NewLine; &NewLine;import android&period;os&period;Bundle &NewLine;import android&period;widget&period;Toast &NewLine;import androidx&period;appcompat&period;app&period;AppCompatActivity &NewLine;import androidx&period;fragment&period;app&period;Fragment &NewLine;import kotlinx&period;android&period;synthetic&period;main&period;activity&lowbar;main&period;&ast; &NewLine; &NewLine;class MainActivity &colon; AppCompatActivity&lpar;&rpar; &lbrace; &NewLine; &NewLine; override fun onCreate&lpar;savedInstanceState&colon; Bundle&quest;&rpar; &lbrace; &NewLine; super&period;onCreate&lpar;savedInstanceState&rpar; &NewLine; setContentView&lpar;R&period;layout&period;activity&lowbar;main&rpar; &NewLine; &NewLine; val toolbar &equals; getSupportActionBar&lpar;&rpar;&semi; &NewLine; &NewLine; loadFragment&lpar;HomeFragment&period;newInstance&lpar;&rpar;&rpar; &NewLine; &NewLine; bottom&lowbar;navigation&period;setOnItemSelectedListener &lbrace; item -&gt&semi; &NewLine; var fragment&colon; Fragment &NewLine; when &lpar;item&period;itemId&rpar; &lbrace; &NewLine; R&period;id&period;nav&lowbar;home -&gt&semi; &lbrace; &NewLine; toolbar&quest;&period;setTitle&lpar;"Home"&rpar; &NewLine; fragment &equals; HomeFragment&lpar;&rpar; &NewLine; loadFragment&lpar;fragment&rpar; &NewLine; true &NewLine; &rcub; &NewLine; R&period;id&period;nav&lowbar;radio -&gt&semi; &lbrace; &NewLine; toolbar&quest;&period;setTitle&lpar;"Radio"&rpar; &NewLine; fragment &equals; RadioFragment&lpar;&rpar; &NewLine; loadFragment&lpar;fragment&rpar; &NewLine; true &NewLine; &NewLine; &rcub; &NewLine; R&period;id&period;nav&lowbar;search -&gt&semi; &lbrace; &NewLine; toolbar&quest;&period;setTitle&lpar;"Search"&rpar; &NewLine; fragment &equals; SearchFragment&lpar;&rpar; &NewLine; loadFragment&lpar;fragment&rpar; &NewLine; true &NewLine; &NewLine; &rcub; &NewLine; R&period;id&period;nav&lowbar;my&lowbar;music -&gt&semi; &lbrace; &NewLine; toolbar&quest;&period;setTitle&lpar;"My Music"&rpar; &NewLine; fragment &equals; MyMusicFragment&lpar;&rpar; &NewLine; loadFragment&lpar;fragment&rpar; &NewLine; true &NewLine; &NewLine; &rcub; &NewLine; R&period;id&period;nav&lowbar;library -&gt&semi; &lbrace; &NewLine; toolbar&quest;&period;setTitle&lpar;"Library"&rpar; &NewLine; fragment &equals; LibraryFragment&lpar;&rpar; &NewLine; loadFragment&lpar;fragment&rpar; &NewLine; true &NewLine; &NewLine; &rcub; &NewLine; else -&gt&semi; false &NewLine; &rcub; &NewLine; &NewLine; &rcub; &NewLine; &NewLine; bottom&lowbar;navigation&period;setOnItemReselectedListener &lbrace; item -&gt&semi; &NewLine; when &lpar;item&period;itemId&rpar; &lbrace; &NewLine; R&period;id&period;nav&lowbar;home -&gt&semi; &lbrace; &NewLine; Toast&period;makeText&lpar;this&comma; "Home Item reselected"&comma; Toast&period;LENGTH&lowbar;SHORT&rpar;&period;show&lpar;&rpar; &NewLine; &rcub; &NewLine; R&period;id&period;nav&lowbar;radio -&gt&semi; &lbrace; &NewLine; Toast&period;makeText&lpar;this&comma; "Radio Item reselected"&comma; Toast&period;LENGTH&lowbar;SHORT&rpar;&period;show&lpar;&rpar; &NewLine; &rcub; &NewLine; R&period;id&period;nav&lowbar;search -&gt&semi; &lbrace; &NewLine; Toast&period;makeText&lpar;this&comma; "Search Item reselected"&comma; Toast&period;LENGTH&lowbar;SHORT&rpar;&period;show&lpar;&rpar; &NewLine; &rcub; &NewLine; R&period;id&period;nav&lowbar;my&lowbar;music -&gt&semi; &lbrace; &NewLine; Toast&period;makeText&lpar;this&comma; "My Music Item reselected"&comma; Toast&period;LENGTH&lowbar;SHORT&rpar;&period;show&lpar;&rpar; &NewLine; &rcub; &NewLine; R&period;id&period;nav&lowbar;library -&gt&semi; &lbrace; &NewLine; Toast&period;makeText&lpar;this&comma; "Library Item reselected"&comma; Toast&period;LENGTH&lowbar;SHORT&rpar;&period;show&lpar;&rpar; &NewLine; &NewLine; &rcub; &NewLine; &rcub; &NewLine; &rcub; &NewLine; &rcub; &NewLine; &NewLine; private fun loadFragment&lpar;fragment&colon; Fragment&rpar; &lbrace; &NewLine;<strong><span style&equals;"color&colon; &num;008000&semi;"> &sol;&sol; load fragment &NewLine;<&sol;span><&sol;strong> supportFragmentManager&period;beginTransaction&lpar;&rpar; &NewLine; &period;replace&lpar;R&period;id&period;fragment&lowbar;container&comma; fragment&rpar; &NewLine; &period;commit&lpar;&rpar; &NewLine; &rcub; &NewLine;&rcub;<&sol;pre> &NewLine; &NewLine; &NewLine; &NewLine;<ul class&equals;"wp-block-list"> &NewLine;<li class&equals;"p1"><strong><span style&equals;"color&colon; &num;0000ff&semi;"> loadFragment&lpar;&rpar;<&sol;span><&sol;strong> – loads the Fragment into FrameLayout&period; It is also called in <span style&equals;"color&colon; &num;008000&semi;"><b>OnItemSelectedListener<&sol;b><&sol;span> callback by passing the appropriate fragment instance&period;<&sol;li> &NewLine;<li><b><b><span style&equals;"color&colon; &num;0000ff&semi;">OnItemSelectedListener<&sol;span>&colon; <&sol;b><&sol;b>listener that will be notified when a navigation item is selected&period;<&sol;li> &NewLine;<li><b><b><span style&equals;"color&colon; &num;0000ff&semi;">OnItemReselectedListener<&sol;span>&colon; <&sol;b><&sol;b>listener that will be notified when the currently selected navigation item is reselected&period;<&sol;li> &NewLine;<&sol;ul> &NewLine; &NewLine; &NewLine; &NewLine;<p>9 &period; Now if you run the project you can see the fragments loaded when navigation is selected&period;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<div class&equals;"image"><img class&equals;"alignnone wp-image-2740" src&equals;"https&colon;&sol;&sol;c1ctech&period;com&sol;wp-content&sol;uploads&sol;2021&sol;07&sol;Screenshot&lowbar;1626787477-576x1024&period;png" alt&equals;"" width&equals;"348" height&equals;"619" &sol;>        <img class&equals;"alignnone wp-image-2741" src&equals;"https&colon;&sol;&sol;c1ctech&period;com&sol;wp-content&sol;uploads&sol;2021&sol;07&sol;Screenshot&lowbar;1626790021-576x1024&period;png" alt&equals;"" width&equals;"348" height&equals;"618" &sol;><&sol;div> &NewLine;&NewLine;

Exit mobile version