Hide FloatingActionButton on Scroll of RecyclerView

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener()
{
    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy)
    {
        if (dy > 0 ||dy<0 && fab.isShown())
        {
            fab.hide();
        }
    }

    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState)
    {
        if (newState == RecyclerView.SCROLL_STATE_IDLE)
        {
            fab.show();
        }

        super.onScrollStateChanged(recyclerView, newState);
    }
});

References
https://github.com/mhdr/AndroidSamples/tree/master/095
https://stackoverflow.com/questions/33208613/hide-floatingactionbutton-on-scroll-of-recyclerview

Get current fragment displayed in ViewPager on Android

First define a SparseArray in your ViewPagers’ adapters like below. In this array we’ll hold the instance of fragments.

SparseArray<Fragment> registeredFragments = new SparseArray<>();

And Override your Adapters’ instantiateItem method.

@Override
public Object instantiateItem(ViewGroup container, int position) {
    Fragment fragment = (Fragment) super.instantiateItem(container, position);
    registeredFragments.put(position, fragment);
    return fragment;
}

Also Override destroyItem method of your ViewPagers

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    registeredFragments.remove(position);
    super.destroyItem(container, position, object);
}
And define a new method to get your ViewPager Fragments instance.

public Fragment getRegisteredFragment(int position) {
    return registeredFragments.get(position);
}

And finally set add a PageChangeListener to your ViewPagers:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {
        // Here's your instance
        YourFragment fragment =(YourFragment)yourPagerAdapter.getRegisteredFragment(position);

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
});

Or

int position = viewPager.getCurrentItem();
YourFragment fragment =(YourFragment)yourPagerAdapter.getRegisteredFragment(position);

References
https://stackoverflow.com/questions/39143087/how-to-get-the-current-fragment-displayed-in-a-specific-tab-of-a-viewpager
https://stackoverflow.com/questions/8258759/getting-the-current-position-of-a-viewpager

Back Navigation for ActionBar on Android

AndroidManifest.xml

        <activity android:name=".ProfileActivity">
            <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"/>
        </activity>

ProfileActivity.java

public class ProfileActivity extends AppCompatActivity {

    Toolbar toolbarProfile;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);

        toolbarProfile = (Toolbar) findViewById(R.id.toolbarProfile);
        setSupportActionBar(toolbarProfile);
        ViewCompat.setLayoutDirection(toolbarProfile, ViewCompat.LAYOUT_DIRECTION_RTL);
        getSupportActionBar().setTitle(R.string.profile_management);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_back); // for custom indicator
        
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            // Respond to the action bar's Up/Home button
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);
                //Intent intent=new Intent(ProfileActivity.this,MainActivity.class);
                //NavUtils.navigateUpTo(ProfileActivity.this,intent);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onBackPressed() {

        NavUtils.navigateUpFromSameTask(this);

        super.onBackPressed();
    }
}

References
https://developer.android.com/training/implementing-navigation/ancestral.html
https://developer.android.com/training/implementing-navigation/temporal.html
https://stackoverflow.com/questions/28740610/how-do-i-show-back-button-in-activity
https://stackoverflow.com/questions/5312334/how-to-handle-back-button-in-activity