Чтобы включить полноэкранную кнопку на плеере YouTube, WebChromeClient
должен реализовать OnShowCustomView
и OnHideCustomView
, и, таким образом, вы сами должны определить, что такое "полноэкранный режим" для вашего приложения, поскольку оно не имеет определяется размером экрана устройства.
Примечание: вам все еще нужен HTML5-тег allowfullscreen
в вашем HTML-источнике iFrame
Итак, давайте предположим, что у вас есть этот тип макета:
LinearLayout (id = linearLayout)
LinearLayout (id = contentLayout)
Button
WebView
Вы можете создать подкласс WebChromeClient
и определить, как вы хотите отображать «полноэкранный» контент, в этом примере мы предположим, что самый внешний LinearLayout
- это место, где мы хотим отображать видео YouTube, внутренний LinearLayout
содержит весь контент действия, который вы хотите скрыть во время воспроизведения полноэкранного видео.
Реализация WebChromeClient:
public class FullScreenClient : WebChromeClient
{
readonly FrameLayout.LayoutParams matchParentLayout = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent,
ViewGroup.LayoutParams.MatchParent);
readonly ViewGroup content;
readonly ViewGroup parent;
View customView;
public FullScreenClient(ViewGroup parent, ViewGroup content)
{
this.parent = parent;
this.content = content;
}
public override void OnShowCustomView(View view, ICustomViewCallback callback)
{
customView = view;
view.LayoutParameters = matchParentLayout;
parent.AddView(view);
content.Visibility = ViewStates.Gone;
}
public override void OnHideCustomView()
{
content.Visibility = ViewStates.Visible;
parent.RemoveView(customView);
customView = null;
}
}
Реализация SetWebChromeClient:
webView.SetWebChromeClient(new FullScreenClient(linearLayout, contentLayout));