Lors de la création d'une activité vide dans Android Studio, la barre d'action est toujours
utilisée comme barre d'état par défaut. L'utilisation d'une mise en page personnalisée dans la barre d'action peut répondre de manière plus flexible à davantage de scénarios, de fonctions, de mises en page et d'exigences d'interface. Cependant,
lorsque la barre d'action utilise une barre d'état personnalisée mise en page, il y aura un blanc La situation qui n'est pas couverte, comme indiqué dans la figure ci-dessous :
Solution:
Toolbar parent =(Toolbar) baseBinding.getRoot().getParent();//我使用了viewbinding
//Toolbar parent =(Toolbar) customActionBarView.getParent();
parent.setPadding(0,0,0,0);
parent.setContentInsetsAbsolute(0,0);
Ce code fonctionne indépendamment du fait que la barre d'outils soit utilisée dans votre mise en page personnalisée
Actionbar utilise le code complet de la mise en page personnalisée :
//若继承自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);
L'effet final est le suivant :