Created
October 10, 2021 20:16
-
-
Save ziyaddinovchiyev/7848d55188ac8e1639374af0c278f470 to your computer and use it in GitHub Desktop.
BaseFragment for android
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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