La barre d'action utilise une mise en page personnalisée et comporte un espace vide qui n'est pas rempli pour résoudre le problème

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 :

insérez la description de l'image ici

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 :
insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/Duker_tec/article/details/122369310
conseillé
Classement