Как отключить / скрыть трехточечный индикатор (индикатор меню параметров) на телефонах ICS - PullRequest
46 голосов
/ 09 февраля 2012

Как отключить / скрыть трехточечный индикатор (индикатор меню параметров) на телефонах ICS, у которого нет кнопки меню.

Я запускаю приложение как <uses-sdk android:minSdkVersion="5"/> в манифесте, код скомпилирован с 4.0. Трехточечный индикатор отображается на каждом экране.

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

Добавление android:targetSdkVersion="14" в манифест работает. Однако не хочу скрывать / удалять кнопку с тремя точками на всех экранах. Только в предпочтительных действиях не хочу показывать эту кнопку с тремя точками.

Ответы [ 19 ]

31 голосов
/ 04 сентября 2012

Переопределить onPrepareOptionsMenu() во фрагменте предпочтения следующим образом:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem item= menu.findItem(R.id.menu_settings);
    item.setVisible(false);
    super.onPrepareOptionsMenu(menu);
    return true;
}

если у вас более одного предмета, установите флаг видимости всех предметов на false

и добавьте команду setHasOptionsMenu(true); на команду onCreate

после того, как вы установите все значения элементов в false, меню исчезнет

по активности, единственное отличие в том, что onPrepareOptionsMenu это boolean, и вам не нужно добавлять команду setHasOptionsMenu(true); при создании

25 голосов
/ 11 апреля 2013

Я только что удалил метод:

@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    getSupportMenuInflater().inflate(R.menu.main, menu);
    return true;
}

тогда это трехточечное меню исчезает (:


Надеюсь, это поможет.

16 голосов
/ 09 февраля 2015
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
       return false;
 }
9 голосов
/ 31 августа 2012

Нет способа показать / скрыть индикатор меню «три точки» для одного действия. Вы можете скрыть этот индикатор меню только для всего приложения, указав android: targetSdkVersion = "14" (или выше) в файле манифеста.

Однако этот индикатор меню не показывает активность предпочтений, если он выходит из собственного android.preference.PreferenceActivity класса. Я реализовал этот сценарий в нескольких моих приложениях, и он отлично работает.

Я предполагаю, что вы используете некоторые реализации пользовательских настроек, которые не выходят за пределы PreferenceActivity. Android Dev Team предлагает всегда использовать PreferenceActivity для любых предпочтений в ваших приложениях.

6 голосов
/ 09 июля 2015

Слишком поздно для вечеринки здесь, я пытался удалить все свои пункты меню и 3 точки (индикатор меню параметров), я поступил иначе, чем решение, приведенное здесь. Я удивлен, что никто не сказал об этом. Существует тег видимости, который может быть установлен в значение false, и изменение кода в активности не требуется visibility=false делает трюк

в res / menu /..

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    visibility=false
    android:title="@string/action_settings"/>
5 голосов
/ 23 октября 2014

переопределите метод и верните false, запомните, что не вызывается super

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    return false;
}
4 голосов
/ 14 ноября 2013

Следующий код работал для моего приложения.Пробовал на Samsung Galaxy S4 (Android 4.3) и Nexus 4 (Android 4.2):

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem item= menu.findItem(R.id.action_settings);
    item.setVisible(false);
    return true;
}
4 голосов
/ 06 февраля 2015

Удалите этот элемент в res / menu / main.xml

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>

Кроме того: не добавляйте элемент с showAsAction="never" - это позволит избежать отображения точек.Если у вас есть больше предметов, чем нельзя показать сразу, точки снова будут там (и это предметы, помеченные ifRoom).

3 голосов
/ 15 декабря 2017
for hiding 3 dots in actionbar/ toolbar

 public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_dash_board_drawer, menu);
        return false;  //for visible 3 dots change to true, hiding false
    }
2 голосов
/ 16 апреля 2017

Скопируйте и вставьте этот код в main.xml в папку меню, вам просто нужно сделать пункт android: visible = "false"

    <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:visible="false"
        android:title="@string/action_settings"
        app:showAsAction="never" />
</menu>
...