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);
最終的な効果は以下の通りです。