From 8423ea9b59e73cbf2009b4ca640cb030b848b1b2 Mon Sep 17 00:00:00 2001 From: Katharine Chui Date: Sat, 19 Feb 2022 21:31:16 +0800 Subject: [PATCH] in cardView, hide iconImage manually instead of relying on appBarLayout height --- .../java/protect/card_locker/LoyaltyCardViewActivity.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 24ab41787..6bb8c7096 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -400,7 +400,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements private void adjustLayoutHeights() { // use getLayoutParams instead of getHeight when heights are pre-determined in xml! getHeight could return 0 if a View is not inflated - if (iconImage.getLayoutParams().height != appBarLayout.getHeight()) { + if (appBarLayout.getHeight() != 0 && iconImage.getLayoutParams().height != appBarLayout.getHeight()) { Log.d("adjustLayoutHeights", "setting imageIcon height from: " + iconImage.getLayoutParams().height + " to: " + appBarLayout.getHeight()); iconImage.setLayoutParams(new CoordinatorLayout.LayoutParams( CoordinatorLayout.LayoutParams.MATCH_PARENT, appBarLayout.getHeight()) @@ -925,6 +925,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements // Or the barcode will be centered instead of on top of the screen // Don't ask me why... appBarLayout.setVisibility(View.INVISIBLE); + iconImage.setVisibility(View.INVISIBLE); collapsingToolbarLayout.setVisibility(View.GONE); landscapeToolbar.setVisibility(View.GONE); @@ -966,6 +967,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements // And restore 24dp paddingTop for appBarLayout appBarLayout.setVisibility(View.VISIBLE); setupOrientation(); + iconImage.setVisibility(View.VISIBLE); // Show other UI elements cardIdFieldView.setVisibility(View.VISIBLE);