Skip to content

Instantly share code, notes, and snippets.

@ziyaddinovchiyev
Created October 10, 2021 20:16
Show Gist options
  • Save ziyaddinovchiyev/7848d55188ac8e1639374af0c278f470 to your computer and use it in GitHub Desktop.
Save ziyaddinovchiyev/7848d55188ac8e1639374af0c278f470 to your computer and use it in GitHub Desktop.
BaseFragment for android
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
import androidx.transition.TransitionInflater;
import .MainActivity;
import java.util.concurrent.TimeUnit;
import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
public abstract class BaseFragment extends Fragment {
protected MainActivity activity;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
activity = (MainActivity) context;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
view.setSystemUiVisibility(
SYSTEM_UI_FLAG_LAYOUT_STABLE |
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}
ViewCompat.setOnApplyWindowInsetsListener(view, (v, insets) -> {
view.setPadding(0, 0 ,0,0);
return insets;
});
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
activity.updateStatusBarColor(ContextCompat.getColor(activity, android.R.color.transparent));
activity.bottomNavVisibility(bottomNavigationVisibility());
return inflater.inflate(layoutResId(), container, false);
}
public abstract int bottomNavigationVisibility();
public abstract int layoutResId();
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setSharedElementEnterTransition(TransitionInflater.from(activity).inflateTransition(android.R.transition.move));
setSharedElementReturnTransition(TransitionInflater.from(activity).inflateTransition(android.R.transition.move));
postponeEnterTransition(200, TimeUnit.MILLISECONDS);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment