2016-05-16 5 views
4

Я хочу, чтобы мой счетчик находился рядом с моим меню на панели инструментов (слева от меню), но в настоящее время прядильщик появляется под меню. Должен ли я добавить его как-то внутри onCreateOptionsMenu(Menu menu)Как добавить прядильщик рядом с меню на панели инструментов

enter image description here

Моя активность:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_list); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 

Spinner spinner = (Spinner) findViewById(R.id.travelType_spinner); 
     // Create an ArrayAdapter using the string array and a default spinner layout 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
       R.array.travelType_array, R.layout.spinner_item); 
     // Specify the layout to use when the list of choices appears 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     // Apply the adapter to the spinner 
     if (spinner != null) { 
      spinner.setAdapter(adapter); 
     } 

Layout:

<android.support.design.widget.AppBarLayout 
     android:id="@+id/appBarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

     <Spinner 
      android:id="@+id/travelType_spinner" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      /> 
    </android.support.design.widget.AppBarLayout> 

Spinner_item.xml

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/whiteText" 
    android:textStyle="bold" 
    android:padding="15dp"/> 
+0

Проверьте файл макета один раз. Тег с прядильщиком должен находиться между тегом панели инструментов, а не после его окончания. –

ответ

18

Добавить меню Элемент

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

или

<?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> 
Смежные вопросы