Files
react-navigation/android/src/main/java/com/swmansion/rnscreens/Screen.java
Krzysztof Magiera 31281d6b68 Initial commit.
2018-08-03 13:54:11 +02:00

73 lines
1.7 KiB
Java

package com.swmansion.rnscreens;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Screen extends ViewGroup {
public static class ScreenFragment extends Fragment {
private Screen mScreenView;
public ScreenFragment() {
throw new IllegalStateException("Screen fragments should never be restored");
}
@SuppressLint("ValidFragment")
public ScreenFragment(Screen screenView) {
super();
mScreenView = screenView;
}
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
return mScreenView;
}
}
private final Fragment mFragment;
private @Nullable ScreenContainer mContainer;
private boolean mActive;
public Screen(Context context) {
super(context);
mFragment = new ScreenFragment(this);
}
@Override
protected void onLayout(boolean b, int i, int i1, int i2, int i3) {
// no-op
}
protected void setContainer(@Nullable ScreenContainer mContainer) {
this.mContainer = mContainer;
}
protected @Nullable ScreenContainer getContainer() {
return mContainer;
}
protected Fragment getFragment() {
return mFragment;
}
public void setActive(boolean active) {
mActive = active;
if (mContainer != null) {
mContainer.notifyChildUpdate();
}
}
public boolean isActive() {
return mActive;
}
}