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:
Peu importe ce que j'ai essayé, je continue à avoir ceci:
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 :
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>
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>
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.
vérifiez ce stackoverflow.com/questions/43852562/… < / a>
J'ai, mais ça ne marche toujours pas.
Votre code affiché ci-dessus est différent
Je sais, je l'ai essayé et cela n'a fait aucune différence.
Est-ce que cela répond à votre question? Coin arrondi pour BottomSheetDialogFragment