How to add a spinner next to a menu in the toolbar

前端 未结 2 920
清歌不尽
清歌不尽 2021-02-05 23:34

I want my spinner to be next to my menu in the toolbar (to the left of the menu), but currently the spinner appear below the menu. Do i have to add it somehow inside the o

相关标签:
2条回答
  • 2021-02-05 23:44

    Add menu Item

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        <item
            android:id="@+id/spinner"
            android:title="ActionBar Spinner"
            app:actionViewClass="android.widget.Spinner"
            android:background="#ff00"
            app:showAsAction="always" />
    </menu>
    

    Java

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.android_action_bar_spinner_menu, menu);
    
            MenuItem item = menu.findItem(R.id.spinner);
            Spinner spinner = (Spinner) item.getActionView();
    
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                    R.array.spinner_list_item_array, android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    
            spinner.setAdapter(adapter);
            return true;
        }
    

    or

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.Toolbar 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:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimaryDark"
        android:minHeight="?attr/actionBarSize"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
         >
    
        <Spinner
            android:id="@+id/spinner_nav"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
    </android.support.v7.widget.Toolbar>
    
    0 讨论(0)
  • 2021-02-06 00:01

    Adding to the above answer, your activity needs to implement onItemSelectedListener, and in the onItemSelected method you do your work.

    You will also need to tell the spinner who is listening, in onCreateOptionsMenu, add this line:

    spinner.setOnItemSelectedListener(this);
    

    which will cause your spinner to call the onItemSelected method of the activity.

    0 讨论(0)
提交回复
热议问题