0

我正在设置WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS标志以使状态栏ActionBar与几乎看不到)。

当我删除下面的标志时,子菜单正常显示。

getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, 
                           WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

这是菜单

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:title="Items"
        app:showAsAction="never">
        <menu>
            <item
                android:id="@+id/item2"
                android:title="item 2"
                app:showAsAction="never" />
            <item
                android:id="@+id/item3"
                android:title="item 3"
                app:showAsAction="never" />

        </menu>
    </item>
    
    <item
        android:id="@+id/item1"
        android:title="Item 1"
        app:showAsAction="never" />

</menu>

以及如果有帮助的活动

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, 
                                WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
    }

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

如何在保持状态栏与状态栏重叠的同时解决此问题ActionBar

4

1 回答 1

2

尝试这个:

将 setFlags 的第二个参数设置为:

WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN 

代替

WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS

或者干脆用这个替换你的代码:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
            WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
于 2020-07-25T02:22:18.757 回答