How to disable/hide three-dot indicator(Option menu indicator) on ICS handsets

后端 未结 19 1754
闹比i
闹比i 2020-12-04 19:29

How to disable/hide three-dot indicator(Option menu indicator) on ICS handsets which does\'t have menu button. ?

I am running application as

相关标签:
19条回答
  • 2020-12-04 19:38

    If you simply want to hide the button, this solution is a bit of a hack but works across all versions of Android (using AppCompat) and doesn't affect your other menu items:

    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>
    

    If you want the Overflow button hidden only on some screens, you could make this an alternate theme (change AppTheme above to AppTheme.NoOverflow) that only certain activities use :

    AndroidManifest.xml

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

    This effectively just makes the icon have no width and height. I rarely recommend opposing design guidelines but in my scenario we used dedicated hardware that did not properly report a menu button was present.

    0 讨论(0)
  • 2020-12-04 19:39

    Way too late to the party here, I was trying to remove all my menu items and the 3-dots(option menu indicator), I did differently than the solution given here I am surprised that nobody had told it. There is a visibility tag that can be set to false and no changing of code in activity is required visibility=false does the trick

    in res / menu /..

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        visibility=false
        android:title="@string/action_settings"/>
    
    0 讨论(0)
  • 2020-12-04 19:43
    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
        }
    
    0 讨论(0)
  • 2020-12-04 19:43

    Should be:

    <item
        android:id="@+id/linearlayout_splash"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:visible="false"
        android:title="@string/action_settings"/>
    
    0 讨论(0)
  • 2020-12-04 19:45

    There is no way to show/hide "three-dot" menu indicator for a single activity. You can hide this menu indicator only for entire app by specifying android:targetSdkVersion="14" (or above) in your manifest file.

    However, this menu indicator is not showing on preferences activity if it extends from native android.preference.PreferenceActivity class. I have this scenario implemented in a few of my apps, and it works perfectly.

    I assume you are using some custom preferences implementations which does not extends from PreferenceActivity. Android Dev Team suggests to always use PreferenceActivity for any preferences in your applications.

    0 讨论(0)
  • 2020-12-04 19:45

    If MainActivity is

    public class MainActivity extends AppCompatActivity

    In MainActivity Class, Remove the below 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);
    }
    
    0 讨论(0)
提交回复
热议问题