DialogFragment: скрыть представления родительской активности - PullRequest
0 голосов
/ 25 сентября 2018

Я показал полноэкранное диалоговое окно в своем приложении, используя этот код:

public class VideoOfDayFragment extends DialogFragment {

private static final String TAG = VideoOfDayFragment.class.getSimpleName();

private Toolbar toolbar;
private TextView actionTV;
private VideoView videoView;

private MediaController controller;
private Uri vidUri;
private String videoUrl;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setStyle(DialogFragment.STYLE_NORMAL, R.style.DialogFullScreen);
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_vid_day, container, false);

    initViews(v);
    toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.action_close));
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            skipVOD();
        }
    });
    toolbar.setTitle("Video of Day");

    return v;
}

@Override
public void onStart() {
    super.onStart();
    Dialog dialog = getDialog();
    if (dialog != null) {
        int w = ViewGroup.LayoutParams.MATCH_PARENT;
        int h = ViewGroup.LayoutParams.MATCH_PARENT;
        dialog.getWindow().setLayout(w, h);
    }
}

private void skipVOD() {
    startActivity(new Intent(getActivity(), HomeActivity.class));
    getActivity().finish();
}

private void initViews(View v) {
    toolbar = v.findViewById(R.id.toolbar);
    actionTV = v.findViewById(R.id.actionTV);
    videoView = v.findViewById(R.id.videoView);
}
}

, и это стиль диалога:

<style name="DialogFullScreen" parent="Theme.AppCompat.Dialog">
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowBackground">@android:color/black</item>
</style>

в адаптере активности хоста, я вызвалshow метод:

VideoOfDayFragment dayFragment = new VideoOfDayFragment();
                    FragmentTransaction ft = ((AppCompatActivity)context).getFragmentManager().beginTransaction();
                    dayFragment.show(ft, dayFragment.getTag());

Он работает нормально, за исключением заголовка панели инструментов, который не отображается, но главная проблема здесь заключается в том, что элементы пользовательского интерфейса активности хоста все еще видны.Как сделать этот диалог автономным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...