アクションバーはカスタム レイアウトを使用しており、問題を解決するために埋められていない空白スペースがあります

Android Studio で空のアクティビティを作成する場合、アクションバーは
デフォルトのステータス バーとして引き続き使用されます。アクションバーでカスタム レイアウトを使用すると、より多くのシナリオ、機能、レイアウト、インターフェイス要件に柔軟に対応できます。ただし、アクションバーが
カスタム ステータス バーを使用する場合、次の図に示すように、レイアウトに空白が表示されます。カバーされていない状況は次のとおりです。

ここに画像の説明を挿入

解決:

        Toolbar parent =(Toolbar) baseBinding.getRoot().getParent();//我使用了viewbinding
        //Toolbar parent =(Toolbar) customActionBarView.getParent();
        parent.setPadding(0,0,0,0);
        parent.setContentInsetsAbsolute(0,0);   

このコードは、カスタム レイアウトでツールバーが使用されているかどうかに関係なく機能します。

アクションバーはカスタム レイアウトの完全なコードを使用します。

        //若继承自AppCompatActivity,使用:
        ActionBar actionBar =getSupportActionBar();
        //若继承自Activity,使用:
        //ActionBar actionBar = getActionBar();
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayShowCustomEnabled(true);
        actionBar.setCustomView(baseBinding.getRoot());  //我使用了viewbinding 
        //actionBar.setCustomView(R.layout.titlebar_layout);  
        actionBar.setElevation(0);
        actionBar.getCustomView().findViewById(R.id.titlebar_left).setOnClickListener(
        new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    
                onBackPressed();
            }
        });

        Toolbar parent =(Toolbar) baseBinding.getRoot().getParent();
        //Toolbar parent =(Toolbar) customActionBarView.getParent();
        parent.setPadding(0,0,0,0);
        parent.setContentInsetsAbsolute(0,0); 

最終的な効果は以下の通りです。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/Duker_tec/article/details/122369310