0
votes

CustomDialog avec contraintlayout Impossible de prendre la largeur dans Android 9

J'ai ajouté une disposition personnalisée avec la mise en page parent comme disposition de contrainte. Dans Android 9, il n'est pas capable de prendre la largeur et de devenir tronqué comme indiqué dans l'image ci-joint.

J'utilise de la boîte de dialogue pour créer une boîte de dialogue. P>

Image de la boîte de dialogue, cette longue barre verticale blanche est la façon dont La boîte de dialogue regarde à Android 9. Veuillez ignorer d'autres couleurs blanches autour. P>

p>

attacher les codes pour la même - p>

   <style name="CustomDialog" parent="Base.Theme.AppCompat.Dialog">
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowTitleStyle">@null</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:background">@drawable/round_corner_dialog_background</item>
</style>


5 commentaires

Utilisez-vous la classe de dialogue?


@ Deepaks.gavkar j'utilise dialogment


@Rahul Postez votre code Java pour le fragment de dialogue.


@Poyyamozhiramakrishnan a mis à jour, pouvez-vous jeter un coup d'oeil?


Essayez ceci: fenêtremanager.layoutparams lp = nouvelle fenêtremanager.layoutparams (); lp.copyfrom (d.getwindow (). Getattributes ()); lp.width = windowmanager.layoutparams.match_parent; lp.height = windowmanager.layoutparams.match_parent; d.getwindow (). Setattributes (LP);


3 Réponses :


0
votes

Pouvez-vous essayer ce code. Cela fonctionne dans mon cas: xxx

et utiliser comme ceci xxx


0 commentaires

0
votes

Vous pouvez définir la largeur et la hauteur de manière dynamique en fonction de la largeur et de la hauteur de l'écran. Qui serait une solution plus idéale.

    val dialog = Dialog(
        context,
        android.R.style.Theme_Translucent_NoTitleBar
    )

    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
    dialog.window!!.setFlags(
        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED
    )

    val lp = WindowManager.LayoutParams()
    lp.copyFrom(dialog.window!!.attributes)
    lp.width = (ScreenUtils.screenWidth * 0.6).toInt()
    lp.height = (ScreenUtils.screenWidth * 0.6).toInt()
    lp.gravity = Gravity.CENTER

    dialog.window!!.attributes = lp

    dialog.setContentView(R.layout.layout_bookmark_note)

    //this is how you access views
    //val editText = dialog.findViewById<EditText>(R.id.editTextNote)

    dialog.setCancelable(true)
    dialog.setCanceledOnTouchOutside(true)
    dialog.setOnCancelListener {

    }
    dialog.show()


0 commentaires

1
votes

Donc, après avoir regardé autour de moi, j'ai trouvé la cause.

Lorsque vous remplacez ONCREAREADIALOG (), Android ignore complètement plusieurs attributs du nœud racine de la mise en page .xml que vous gonflez. Cela inclut, mais n'est probablement pas limité à:

  • fond_color
  • AYOUT_GRAVITY
  • Layout_width
  • Layout_height

    Même chose se passait avec moi.

    J'ai résolu ceci en ajoutant 2 ligne dans le style CustomDialog -

    1. Android: WindowminWidthmajor
    2. Android: WindowminWidthminor

      Il faut donc la largeur de là et fonctionne bien.

      référence- https://stackoverflow.com/a/41495370/4288868


0 commentaires