1
votes

Comment puis-je arrondir les coins de la boîte de dialogue de ma feuille inférieure?

J'essaye d'arrondir les coins supérieurs de mon BottomSheetDialog, mais je n'ai eu aucune chance avec quoi que ce soit en ligne. Voici à quoi je voudrais qu'il ressemble:

Rounded Modal Bottom Sheet

Peu importe ce que j'ai essayé, je continue à avoir ceci:

Bas modal non arrondi Sheet

J'ai essayé la méthode ici et en utilisant shapeAppearanceLargeComponent (ce que j'utilise maintenant).

Voici mon code:

styles.xml

BottomNavMenuFragment navFragment = new BottomNavMenuFragment();
navFragment.show(getSupportFragmentManager(), navFragment.getTag());

BottomNavMenuFragment:

public class BottomNavMenuFragment extends BottomSheetDialogFragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_bottom_nav_drawer, container, false);
    }
}

Et voici comment je montre le fragment:

 <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    ...
    <item name="shapeAppearanceLargeComponent">@style/CustomShapeAppearanceBottomSheetDialog</item>
</style>

<style name="CustomShapeAppearanceBottomSheetDialog" parent="">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSizeTopRight">16dp</item>
    <item name="cornerSizeTopLeft">16dp</item>
</style>

Rien de ce que je semble faire ne fonctionne. Quelqu'un pourrait-il m'indiquer la bonne direction?


3 Réponses :


0
votes

Vous pouvez créer la forme suivante dans votre dessin:

dessinable / circular_corners.xml

android:background="@drawable/rounded_corners"

Ensuite, pour la mise en page de votre feuille du bas, vous pouvez ajouter ce dessinable comme propriété d'arrière-plan.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:shape="rectangle">
    <solid android:color="#fff"/>
    <corners 
        android:topLeftRadius="20dp"
        android:topRightRadius="20dp"/>
</shape>


0 commentaires

0
votes

Suivez les étapes ci-dessous pour obtenir la feuille de fond des coins arrondis supérieurs:

Étape 1: Créez un fichier round_top_corners.xml pouvant être dessiné dans le dossier drawable

 @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setStyle(STYLE_NORMAL, R.style.BottomSheetDialogStyle);
    }

Étape 2: Créez les styles ci-dessous dans styles.xml

 <style name="BottomSheetDialogStyle" parent="Theme.Design.Light.BottomSheetDialog">
        <item name="bottomSheetStyle">@style/bottomSheetBackground</item>
    </style>

    <style name="bottomSheetBackground" parent="Widget.Design.BottomSheet.Modal">
        <item name="android:background">@drawable/rounded_top_corners</item>
    </style>


0 commentaires

1
votes

Après avoir joué avec les solutions possibles que les gens ont publiées, j'ai compris que mon code fonctionnait bien, mais les coins de mon NavigationView masquaient les coins arrondis du tiroir. Après avoir ajouté un peu de remplissage, les coins arrondis s'affichent correctement.


0 commentaires