・ Afficher le contenu sur le Web dans une boîte de dialogue -La largeur du dialogue correspond à 90% de la largeur de l'écran ・ La hauteur de la boîte de dialogue peut être modifiée en fonction de la taille du contenu
WebViewDialogFragment.java
public class WebViewDialogFragment extends DialogFragment {
	//Omettre les choses non pertinentes
	@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);
        binding = DialogWebViewBinding.inflate(inflater, container, false);
		String url = "https://hogehoge";
		binding.webview.setWebViewClient(new WebViewClient(){
			@Override
			public void onPageFinished(WebView view , String url){
				//Modifier la hauteur de la boîte de dialogue en fonction de la taille du contenu
				Dialog dialog = getDialog();
				WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
				//conversion dp → px
				DisplayMetrics metrics = getResources().getDisplayMetrics();
				lp.height = (int)(view.getContentHeight() * metrics.scaledDensity);
				dialog.getWindow().setAttributes(lp);
			}
		});
		binding.webview.loadUrl(url);
        return binding.getRoot();
    }
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //Seule la largeur est fixée au départ
        Dialog dialog = getDialog();
        WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
        DisplayMetrics metrics = getResources().getDisplayMetrics();
		float scale = 0.9f;
        lp.width = (int)(metrics.widthPixels * scale);
		//Définissez la hauteur sur 0 et masquez la boîte de dialogue une fois
        lp.height = 0;
        dialog.getWindow().setAttributes(lp);
    }
}
ʻOnCreateDialog ʻonCreateView ne fonctionne pas même sidialog.getWindow (). SetAttributes (lp);.
Doit être adressé en remplaçant ʻonActivityCreated`.
Vous pouvez obtenir la hauteur du contenu avec WebView.getContentHeight (), mais l'unité est dp.
Multipliez par DisplayMetrics.scaledDensity pour convertir en px, puis définissez.
Recommended Posts