2016-11-10 2 views
0

Я пробовал различные способы создания кнопки меню в обновлении Android Studio, но я не мог сделать кнопку меню.Панель инструментов не отображает кнопку меню

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_mainmenu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

Я добавил этот код в деятельности и сделал файл menu.xml, содержащий:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    > 
    <item 
     android:id="@+id/expanded_menu" 
     android:showAsAction="always" 
     android:icon="@drawable/ic_action_menu" 
     app:showAsAction="always" 
     android:title="button"> 
    </item> 
    <item android:id="@+id/credits" 
     android:title="Credits" 
     android:orderInCategory="100" 
     /> 
    <item android:title="Settings" 
     android:id="@+id/settings" 
     android:orderInCategory="101" 
     /> 
</menu> 

Во всяком случае, как я могу сделать три квадрата, которые были автоматически добавлены в старых версиях Android появляются?

App screenshot

Это скриншот приложения в предыдущих версиях андроида студии было три точки в правом верхнем углу. В настоящее время их там нет, и мой вопрос заключается в том, как добавить кнопку меню.

Редактировать: также при записи app:showAsAction="always" андроид-студия отмечена всеми линиями красного цвета до тех пор, пока я не написал знак «=», может быть, эта ошибка связана с чем-то? Также, возможно, я пропустил шаг при создании элементов/панели инструментов, но я точно не знаю, пропустил ли я что-нибудь.

+0

Я уверен, что 'getMenuInflater(). Inflate (R.menu.menu_mainmenu, menu)' делает то, что вы хотите. Какую тему вы используете? У вас даже есть панель инструментов? –

+0

Я делаю, я добавил к нему только заголовок и изменил его цвет. И я использую тему «свет»: popupTheme = «@ style/ThemeOverlay.AppCompat.Light» –

+0

Не пытайтесь сделать панель инструментов черной. –

ответ

0

Я считаю, что вы говорите о кнопке перелива (с надписью «3»):

enter image description here

Эта кнопка появляется, когда не хватает места, чтобы отобразить все элементы в меню опций, или когда вы указываете конкретные элементы, чтобы они не отображались как действие. Это обрабатывается атрибутом app:showAsAction. Есть пять различных значений, которые можно применить, которые описываются следующим образом:

  • ifRoom: Только этот пункт в панели приложения, если есть место для него. Если нет предметов для всех предметов с пометкой "ifRoom", значения с наименьшими orderInCategory значениями отображаются как , а остальные элементы отображаются в меню переполнения.

  • withText: Также укажите текст заголовка (определенный android:title) с элементом действия. Вы можете включить это значение вместе с одним из других в качестве набора флагов, разделив их на трубу |.

  • never: Никогда не размещайте этот элемент в панели приложений. Вместо этого перечислите элемент в меню переполнения панели приложений.

  • всегда: Всегда размещайте этот предмет в панели приложений. Избегайте использования этого, если не важно, чтобы элемент всегда отображался в баре действия . Установка нескольких элементов, которые всегда отображаются в качестве элементов действий, может привести к их совпадению с другим пользовательским интерфейсом в панели приложений.

  • collapseActionView: Вид действие, связанное с этим предметом действий (как указано android:actionLayout или android:actionViewClass) является складным.Введенный в уровне API 14.

Поэтому, если вы хотите только показать кнопку переполнения, вы должны установить app:showAsAction="never" для всех ваших пунктов меню.

Несмотря на то, что типичная структура меню параметров - это всегда показывать первый элемент и обозначать остальное, которое будет отображаться "ifRoom".

+0

. Я не уверен, что это устраняет проблему. В меню явно есть элемент 'always', но на изображении ничего не отображается. –

+0

Как вы можете видеть на картинке, там нет элементов на панели инструментов, хотя я сделал их в файле меню. –

+0

@ cricket_007 Вы правы, я не видел редактирования, добавляющего изображение, прежде чем я отправил. – Bryan