Completata implementazione dell'elevatedToolbar e rimossa la WaterfallTollbar
This commit is contained in:
@@ -121,7 +121,7 @@ public class MainActivity extends AppCompatActivity
|
||||
@Override
|
||||
public boolean onNavigationItemSelected(MenuItem item) {
|
||||
|
||||
// mBinding.appBarMain.waterfallToolbar.resetAll();
|
||||
mBinding.appBarMain.elevatedToolbar.resetAll();
|
||||
|
||||
// Handle navigation view item clicks here.
|
||||
Fragment fragment = null;
|
||||
@@ -181,10 +181,12 @@ public class MainActivity extends AppCompatActivity
|
||||
mBinding.appBarMain.mainSearch.setVisibility(View.VISIBLE);
|
||||
mBinding.appBarMain.mainSearch.setOnSearchClickListener(v -> {
|
||||
((ISearcableFragment) fragment).onSearchEnabled();
|
||||
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE);
|
||||
});
|
||||
|
||||
mBinding.appBarMain.mainSearch.setOnCloseListener(() -> {
|
||||
((ISearcableFragment) fragment).onSearchDisabled();
|
||||
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.VISIBLE);
|
||||
return false;
|
||||
});
|
||||
} else {
|
||||
@@ -206,7 +208,6 @@ public class MainActivity extends AppCompatActivity
|
||||
|
||||
if(fragment instanceof IScrollableFragment) {
|
||||
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
|
||||
// ((IScrollableFragment) fragment).setWaterfallToolbar(mBinding.appBarMain.waterfallToolbar);
|
||||
}
|
||||
|
||||
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) {
|
||||
|
||||
@@ -220,13 +220,6 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
||||
rigaOrdine.clienti.add(cliente);
|
||||
});
|
||||
|
||||
// List<OrdineAccettazioneInevasoDTO> filteredByCodAnagAndDateAndNumberOrders = Stream.of(tmpOrd)
|
||||
// .filter(x ->
|
||||
// x.codAnagOrd.equals(rigaOrdine.codAnagOrd) &&
|
||||
// x.numero == rigaOrdine.numero &&
|
||||
// x.data.equals(rigaOrdine.data)).toList();
|
||||
|
||||
|
||||
|
||||
groupedOrdine.ordini.add(rigaOrdine);
|
||||
|
||||
|
||||
@@ -1,67 +1,159 @@
|
||||
package it.integry.integrywmsnative.ui;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.animation.StateListAnimator;
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.widget.ScrollView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.cardview.widget.CardView;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
public class ElevatedToolbar extends Toolbar {
|
||||
public class ElevatedToolbar extends CardView {
|
||||
|
||||
private final float CARD_ELEVATION = 50f;
|
||||
|
||||
private RecyclerView mRecyclerView = null;
|
||||
private ScrollView mScrollView = null;
|
||||
private NestedScrollView mNestedScrollView = null;
|
||||
|
||||
public ElevatedToolbar(Context context) {
|
||||
super(context);
|
||||
resetElevation();
|
||||
}
|
||||
|
||||
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
resetElevation();
|
||||
}
|
||||
|
||||
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
resetElevation();
|
||||
}
|
||||
|
||||
public void resetElevation() {
|
||||
setCardElevation(0f);
|
||||
}
|
||||
|
||||
public void resetAll() {
|
||||
resetElevation();
|
||||
|
||||
removeRecyclerViewScrollListener();
|
||||
|
||||
removeScrollViewScrollListener();
|
||||
|
||||
removeNestedScrollViewListener();
|
||||
|
||||
mRecyclerView = null;
|
||||
mScrollView = null;
|
||||
mNestedScrollView = null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
RecyclerView.OnScrollListener recyclerViewScrollListener = new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||
super.onScrolled(recyclerView, dx, dy);
|
||||
|
||||
if(!recyclerView.canScrollVertically(-1)) {
|
||||
resetElevation();
|
||||
} else {
|
||||
setCardElevation(CARD_ELEVATION);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public void setRecyclerView(RecyclerView recyclerView) {
|
||||
this.mRecyclerView = recyclerView;
|
||||
resetElevation();
|
||||
|
||||
final ElevatedToolbar currentInstance = this;
|
||||
|
||||
if(recyclerView != null) {
|
||||
|
||||
recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||
super.onScrolled(recyclerView, dx, dy);
|
||||
|
||||
if(!recyclerView.canScrollVertically(-1)) {
|
||||
// currentInstance.setElevation(0f);
|
||||
ViewCompat.setElevation(currentInstance, 0f);
|
||||
} else {
|
||||
// currentInstance.setElevation(50f);
|
||||
ViewCompat.setElevation(currentInstance, 50f);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if(mRecyclerView != null) {
|
||||
mRecyclerView.setOnScrollListener(recyclerViewScrollListener);
|
||||
} else {
|
||||
Log.e("ElevatedToolbar", "RecyclerView is NULL");
|
||||
}
|
||||
}
|
||||
|
||||
public void removeRecyclerViewScrollListener(){
|
||||
if(mRecyclerView != null) {
|
||||
mRecyclerView.setOnScrollListener(null);
|
||||
} else {
|
||||
Log.e("ElevatedToolbar", "REMOVE: RecyclerView is NULL");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private ViewTreeObserver.OnScrollChangedListener scrollViewScrollListener = () -> {
|
||||
if(mScrollView != null) {
|
||||
if(mScrollView.getScrollY() == 0) {
|
||||
resetElevation();
|
||||
} else {
|
||||
setCardElevation(CARD_ELEVATION);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public void setScrollView(ScrollView scrollView) {
|
||||
this.mScrollView = scrollView;
|
||||
resetElevation();
|
||||
|
||||
if(mScrollView != null) {
|
||||
mScrollView.getViewTreeObserver().addOnScrollChangedListener(scrollViewScrollListener);
|
||||
} else {
|
||||
Log.e("ElevatedToolbar", "ScrollView is NULL");
|
||||
}
|
||||
}
|
||||
|
||||
public void removeScrollViewScrollListener(){
|
||||
if(mRecyclerView != null) {
|
||||
mScrollView.getViewTreeObserver().removeOnScrollChangedListener(scrollViewScrollListener);
|
||||
} else {
|
||||
Log.e("ElevatedToolbar", "REMOVE: ScrollView is NULL");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setNestedScrollView(NestedScrollView nestedScrollView) {
|
||||
|
||||
|
||||
|
||||
private NestedScrollView.OnScrollChangeListener nestedScrollViewListener = (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
|
||||
if(mNestedScrollView != null) {
|
||||
if(scrollY == 0) {
|
||||
resetElevation();
|
||||
} else {
|
||||
setCardElevation(CARD_ELEVATION);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public void setNestedScrollView(NestedScrollView nestedScrollView) {
|
||||
this.mNestedScrollView = nestedScrollView;
|
||||
resetElevation();
|
||||
|
||||
if(mNestedScrollView != null) {
|
||||
mNestedScrollView.setOnScrollChangeListener(nestedScrollViewListener);
|
||||
} else {
|
||||
Log.e("ElevatedToolbar", "NestedScrollView is NULL");
|
||||
}
|
||||
}
|
||||
|
||||
public void removeNestedScrollViewListener() {
|
||||
if(mNestedScrollView != null) {
|
||||
mNestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) null);
|
||||
} else {
|
||||
Log.e("ElevatedToolbar", "REMOVE: NestedScrollView is NULL");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user