Added option to hide action bar on scrolling down

This commit is contained in:
M66B
2020-03-04 11:14:20 +01:00
parent f40e4ec17d
commit a15a10a8a1
6 changed files with 114 additions and 3 deletions

View File

@@ -90,6 +90,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.PopupMenu;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group;
@@ -202,6 +203,8 @@ import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
import static android.text.format.DateUtils.DAY_IN_MILLIS;
import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
import static android.text.format.DateUtils.FORMAT_SHOW_WEEKDAY;
import static androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_IDLE;
import static androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_SETTLING;
import static org.openintents.openpgp.OpenPgpSignatureResult.RESULT_KEY_MISSING;
import static org.openintents.openpgp.OpenPgpSignatureResult.RESULT_NO_SIGNATURE;
import static org.openintents.openpgp.OpenPgpSignatureResult.RESULT_VALID_KEY_CONFIRMED;
@@ -552,9 +555,35 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
Log.w(ex);
}
}
@Override
public void onScrollStateChanged(int state) {
super.onScrollStateChanged(state);
try {
int y = rvMessage.computeVerticalScrollOffset();
Log.i("Scroll state=" + state + " y=" + y);
setActionBar(y == 0);
} catch (Throwable ex) {
Log.w(ex);
}
}
};
rvMessage.setLayoutManager(llm);
rvMessage.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
try {
int y = rvMessage.computeVerticalScrollOffset();
Log.i("Layout completed y=" + y);
setActionBar(y == 0);
} catch (Throwable ex) {
Log.w(ex);
}
}
});
if (!cards) {
DividerItemDecoration itemDecorator = new DividerItemDecoration(getContext(), llm.getOrientation()) {
@Override