У меня есть веб-просмотр со встроенным фреймом для показа видео с разных сайтов.Приложение имеет функцию поворота, которая скрывает все другие виды в действии и делает веб-просмотр полноэкранным (ширина и высота = match_parent).
Веб-просмотр идеально подходит для контента, когда он находится в портретном режиме, но когда экранповернутое видео в iframe внезапно получает большую высоту, чем веб-вид, и веб-вид становится прокручиваемым (Вы можете прокручивать вверх и вниз для просмотра элементов управления и заголовка).Что мне нужно сделать, чтобы веб-просмотр соответствовал содержанию внутри него, когда он находится в альбомном режиме, как это происходит в портретном режиме, и чтобы его нельзя было прокручивать, просто поместите весь контент.
Я попытался испортитьвокруг с высотой и шириной контейнера и div, но не повезло.
Вот как я помещаю контент внутри веб-просмотра:
<style>.video-container { position: absolute; background-color: black;padding-bottom: 56.25%; padding-top: 0px; height: auto; width: auto; top: 0; left: 0; right: 0; bottom: 0; overflow: hidden; }.video-container iframe { position: absolute; top:0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; overflow: hidden; }.body {background-color: black;}</style><div class="video-container"><iframe width="480" height="270" src="https://www.youtube.com/embed/UtagUSECwOw?feature=oembed" scrolling="no" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="0"></iframe></div>
Затем его загружается в веб-просмотр так:
wbVideoPlayer.loadDataWithBaseURL("", getFixedIframe(content.getContentUrl()), "text/html", "UTF-8", "");
Вот мой метод onConfigurationChanged:
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
switch (config.orientation) {
case Configuration.ORIENTATION_LANDSCAPE:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
hideAll();
flVideo.setBackground(ContextCompat.getDrawable(this, android.R.color.black));
width = dm.widthPixels; //320
height = dm.heightPixels; //480
wbVideoPlayer.getSettings().setLoadWithOverviewMode(true);
wbVideoPlayer.getSettings().setUseWideViewPort(true);
wbVideoPlayer.setPadding(0, 0, 0, 0);
wbVideoPlayer.setInitialScale(1);
wbVideoPlayer.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
flVideoLayout.setLayoutParams(lp);
break;
case Configuration.ORIENTATION_PORTRAIT:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
showAll();
flVideo.setBackground(ContextCompat.getDrawable(this, android.R.color.white));
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(width, (int) (250 * density));
flVideoLayout.setLayoutParams(lp1);
break;
}
}
Любая помощь будет оценена.Спасибо!