webentwicklung-frage-antwort-db.com.de

So deaktivieren / verbergen Sie die Dreipunktanzeige (Optionsmenüanzeige) auf ICS Mobilteilen

So deaktivieren/verbergen Sie die Dreipunktanzeige (Optionsmenüanzeige) auf ICS Mobilteilen ohne Menütaste.?

Ich führe eine Anwendung als <uses-sdk Android:minSdkVersion="5"/> In Manifest aus, Code wird mit 4.0 Kompiliert. Dreipunktanzeige erscheint auf jedem Bildschirm.

Beispiel für Präferenzaktivitäten Ich möchte keine Dreipunktanzeige anzeigen, da es keine Menüoptionen gibt.

Das Hinzufügen von Android:targetSdkVersion="14" Im Manifest funktioniert. Sie möchten jedoch nicht, dass drei Punkte auf allen Bildschirmen ausgeblendet bzw. entfernt werden. Nur in Präferenzaktivitäten möchten diese Schaltfläche mit drei Punkten nicht angezeigt werden.

47
Subba

Überschreibe onPrepareOptionsMenu() im Fragment der Präferenz mit diesem:

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

wenn Sie mehr als ein Element haben, setzen Sie das Sichtbarkeitsflag aller Elemente auf false

und fügen Sie den Befehl setHasOptionsMenu(true); zum Befehl onCreate hinzu

nachdem Sie die gesamte Sichtbarkeit der Elemente auf false gesetzt haben, wird das Menü ausgeblendet

bei Aktivitäten ist der einzige Unterschied, dass onPrepareOptionsMenuboolean ist und Sie den Befehl setHasOptionsMenu(true); nicht zur Erstellung hinzufügen müssen

31
Asaf Manassen

Ich habe gerade die Methode gelöscht:

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

dann verschwindet das Dreipunktmenü (:


Ich hoffe es hilft.

25
alicanbatur
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
       return false;
 }
17
dnocode

Es gibt keine Möglichkeit, die "Dreipunkt" -Menüanzeige für eine einzelne Aktivität ein- oder auszublenden. Sie können diese Menüanzeige nur für die gesamte App ausblenden, indem Sie Android: targetSdkVersion = "14" (oder höher) in Ihrer Manifestdatei angeben.

Diese Menüanzeige zeigt jedoch nicht an , wenn sie sich von der systemeigenen Klasse Android.preference.PreferenceActivity erstreckt. Ich habe dieses Szenario in einigen meiner Apps implementiert und es funktioniert perfekt.

Ich gehe davon aus, dass Sie einige benutzerdefinierte Präferenzimplementierungen verwenden, die nicht von PreferenceActivity abweichen. Android Dev Team empfiehlt, PreferenceActivity für alle Einstellungen in Ihren Anwendungen zu verwenden.

9
HitOdessit

Viel zu spät zur Party hier, ich habe versucht, alle meine Menüpunkte und die 3-Punkte (Optionsmenüanzeige) zu entfernen. Ich habe etwas anderes gemacht als die hier angegebene Lösung. Ich bin überrascht, dass es niemand gesagt hat. Es gibt ein Sichtbarkeits-Tag, das auf false gesetzt werden kann, und es ist keine Änderung des Codes in der Aktivität erforderlich.visibility=false macht den Trick

in res/menu/..

<item
    Android:id="@+id/action_settings"
    Android:orderInCategory="100"
    Android:showAsAction="never"
    visibility=false
    Android:title="@string/action_settings"/>
6
war_Hero

überschreibe die Methode und gib false zurück

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    return false;
}
5
dnocode

Diesen Gegenstand entfernen in res / menu / main.xml

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

Zusätzlich: do nicht hinzufügen ein Item mit showAsAction="never"- Dies verhindert, dass die Punkte angezeigt werden. Wenn Sie mehr Elemente haben, als nicht gleichzeitig angezeigt werden können, sind die Punkte wieder vorhanden (und es handelt sich um Elemente, die mit ifRoom markiert sind).

4
Weverton Souza

Der folgende Code hat für meine App funktioniert. Versucht auf Samsung Galaxy S4 (Android 4.3) und 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
David T. Nguyen
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
    }
3
Kishore Reddy

Ich habe gerade die "onCreateOptionsMenu" -Methode ausgeschlossen:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    //Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_planos, menu);
    return true;
}
2
GCoe

Sie können die Android targetVersion ändern, wodurch das 3-Punkt-Menü entweder ausgeblendet oder eingeblendet wird. Sie müssen onCreate Ihrer Aktivität wie folgt überschreiben:

@Override
public void onCreate(Bundle savedInstanceState) {
    getApplicationInfo().targetSdkVersion = 10; // To enable the 3-dot menu call this code before super.OnCreate
    super.onCreate(savedInstanceState); 
}

@Override
public void onCreate(Bundle savedInstanceState) {
    getApplicationInfo().targetSdkVersion = 14; // To disable the 3-dot menu call this code before super.OnCreate
    super.onCreate(savedInstanceState); 
}

Getestet auf Android 4.x.x und Android 3.0

2
user3866289

Ich möchte nur die Antwort von @war_hero verbessern. Wenn Sie die Sichtbarkeit zur Laufzeit festlegen möchten, können Sie den Menüparameter oncreateoptions wie folgt verwenden

Menu overflow;

 @Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.mymenu, menu);
    this.overflow = menu;
    return super.onCreateOptionsMenu(menu);
}

und dann eine Funktion zum Anzeigen oder Ausblenden von Menüelementen entsprechend dem Index erstellen. für z.

public void hideorShowMenuItems(boolean bool){
   overflow.getItem(1).setVisible(bool);
   overflow.getItem(2).setVisible(bool);
   overflow.getItem(3).setVisible(bool);
   overflow.getItem(4).setVisible(bool);
   overflow.getItem(5).setVisible(bool);
}
2
codepeaker

Kopieren Fügen Sie diesen Code in die Datei main.xml im Menüordner ein. Sie müssen nur das Element Android erstellen: 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>
2
Karan Shaw

Wenn MainActivity ist

die öffentliche Klasse MainActivity erweitert AppCompatActivity

Entfernen Sie in MainActivity Class den folgenden Code.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, 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.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
1
Rijul Sudhir

Wenn Sie die Schaltfläche einfach ausblenden möchten, ist diese Lösung ein bisschen hackig, funktioniert jedoch in allen Versionen von Android (mit AppCompat)) und hat keine Auswirkungen auf Ihre anderen Menüelemente:

styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light">
    ...
    <item name="Android:actionOverflowButtonStyle">@style/AppTheme.Overflow</item>
    <!-- If you're using AppCompat, instead use -->
    <item name="actionOverflowButtonStyle">@style/AppTheme.Overflow</item>
</style>

<style name="AppTheme" />
<style name="AppTheme.Overflow">
    <item name="Android:src">@null</item>
</style>

Wenn Sie möchten, dass die Schaltfläche Überlauf nur auf einigen Bildschirmen ausgeblendet wird, können Sie dies zu einem alternativen Thema machen (ändern Sie AppTheme oben in AppTheme.NoOverflow), das nur bestimmte Aktivitäten verwenden:

AndroidManifest.xml

<activity Android:name=".NoOverflowActivity"
          Android:theme="@style/AppTheme.NoOverflow" >

Dadurch hat das Symbol effektiv nur keine Breite und Höhe. Ich empfehle selten entgegengesetzte Designrichtlinien, aber in meinem Szenario verwendeten wir dedizierte Hardware, die nicht ordnungsgemäß meldete, dass eine Menüschaltfläche vorhanden war.

1
Stephen Kidson

Sollte sein:

<item
    Android:id="@+id/linearlayout_splash"
    Android:orderInCategory="100"
    Android:showAsAction="never"
    Android:visible="false"
    Android:title="@string/action_settings"/>
1
Vachy

Mach es so.

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    // if nav drawer is opened, hide the action items
    boolean drawerOpen = mDrawerLayout.isDrawerOpen(leftDrawer);
    return (!drawerOpen);
}

Ich überprüfe, ob meine Navigationsleiste sichtbar ist. Ich verstecke das Menü und umgekehrt. Sie können es entsprechend Ihrer Anforderung verwenden. Hoffe das hilft. Fröhliche Codierung. :)

0
Atul O Holic

So finde ich eine Lösung von mir. Es ist vielleicht hilfreich.

@Override
public boolean onKeyDown(int keycode, KeyEvent event ) {
    //KEYCODE_MENU
 if(keycode == KeyEvent.KEYCODE_MENU){
 /* AlertDialog.Builder dialogBuilder 
  = new AlertDialog.Builder(this)
  .setMessage("Test")
  .setTitle("Menu dialog");
  dialogBuilder.create().show();*/
  return true;

//  finish();
 }
 return super.onKeyDown(keycode,event);  
}
0
Bay

Ich habe gerade benutzt

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

Wobei R.menu.main nur eine leere Menü-XML ist

<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" ></menu>
0
Analizer