Я использую этот код для открытия фрагмента диалога из пользовательского адаптера:
HomeActivity activity = (HomeActivity) (context);
FragmentManager fm = activity.getSupportFragmentManager();
editor.putString("post_media", remainder);
editor.apply();
PostVideoFragment alertDialog = new PostVideoFragment();
alertDialog.show(fm, "fragment_alert");
И это макет из диалога фрагмента:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">
<VideoView
android:id="@+id/video"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
И это коддля фрагмента:
public class PostVideoFragment extends DialogFragment {
VideoView post_video;
public static String MISDATOS= "MisDatos";
SharedPreferences prefs;
SharedPreferences.Editor editor;
String post_media;
public static PostVideoFragment newInstance() {
PostVideoFragment fragment = new PostVideoFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_post_video, container, false);
prefs = getActivity().getSharedPreferences(MISDATOS, Context.MODE_PRIVATE);
editor = prefs.edit();
post_media = prefs.getString("post_media", "no");
String url = "https://f..postsmedia/";
final VideoView videoView;
videoView = (VideoView)v.findViewById(R.id.video);
videoView.setVideoPath(url+post_media);
videoView.start();
return v;
}
}
Функциональность правильная, видео воспроизводится, но мне нужно было бы воспроизвести его на полной ширине, когда экран находится в альбомном режиме, теперь он отображается только в очень небольшом размере.mode.
Вот вывод:
Портретный режим:
Пейзажный режим: