I want to add spinner as an item in my navigation drawer. Where should I put the spinner as an item? Where to inflate the layout for the spinner? Where to initialize the spinner? I want it to look like this:
This is where I add my items:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="@+id/group1"
android:checkableBehavior="single">
<item
android:id="@+id/nav_login"
android:icon="@drawable/ic_login"
android:title="@string/login_menu_item"/>
<item
android:id="@+id/nav_signup"
android:icon="@drawable/ic_signup"
android:title="@string/signup_menu_item"/>
</group>
<item android:title="@string/language">
<menu>
<item
android:id="@+id/nav_eng"
android:title="@string/english">
</item>
<item
android:id="@+id/nav_heb"
android:title="@string/hebrew">
</item>
</menu>
This is my layout with the drawer:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:title="Masü"
/>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:openDrawer="start">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
/>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:itemIconTint="@color/colorAccent"
app:itemTextColor="@color/textColorSecondary"
app:menu="@menu/activity_home_drawer"/>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
And on click of an item this is how it works:
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
mDrawerLayout.closeDrawers();
if (id == R.id.nav_login) {
if (mIsLoggedin) {
logout();
} else {
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.fragment_container, new LoginFragment()).commit();
}
Step 1. Please add item in menu.xml
Step 2. Please create layout for spinner view
Step 3. set spinner data in your activity file
Step 4. please add android support design library into project if need.
I will guide you how to make a custom spinner in Toolbar so you can get idea from here.
Step 1 Add support library and create Toolbar layout
toolbar.xml
Step 2 include toolbar in your activity layout file like this
spintoolbaractivity.xml
spinner_row.xml
values/styles.xml
Step 3 Create this custom adapter for spinner.
CustomSpinnerAdapter.java
SpinToolbarActivity.java
See your spinner look like this