diff options
author | Aurelien Hubert <aurel.hubert@gmail.com> | 2016-03-23 22:36:00 +0100 |
---|---|---|
committer | Aurelien Hubert <aurel.hubert@gmail.com> | 2016-03-23 22:36:00 +0100 |
commit | 85c437c09e0a37d77398197fd1aa49316b176533 (patch) | |
tree | bc86f9fd33e6c3283a28b4649c02e7b48960f4fb | |
parent | cdb77f9da1067df89287fc9a5943ed3c464f01cf (diff) | |
download | android_external_ahbottomnavigation-85c437c09e0a37d77398197fd1aa49316b176533.tar.gz android_external_ahbottomnavigation-85c437c09e0a37d77398197fd1aa49316b176533.tar.bz2 android_external_ahbottomnavigation-85c437c09e0a37d77398197fd1aa49316b176533.zip |
Improve forceTitlesDisplay UI
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | ahbottomnavigation/build.gradle | 6 | ||||
-rw-r--r-- | ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java | 30 | ||||
-rw-r--r-- | ahbottomnavigation/src/main/res/values/dimens.xml | 3 |
4 files changed, 31 insertions, 10 deletions
@@ -18,7 +18,7 @@ Library to implement the Bottom Navigation component from Material Design guidel ### Gradle ```groovy dependencies { - compile 'com.aurelhubert:ahbottomnavigation:0.1.5' + compile 'com.aurelhubert:ahbottomnavigation:0.1.6' } ``` ### XML diff --git a/ahbottomnavigation/build.gradle b/ahbottomnavigation/build.gradle index 330461f..e486695 100644 --- a/ahbottomnavigation/build.gradle +++ b/ahbottomnavigation/build.gradle @@ -13,7 +13,7 @@ ext { siteUrl = 'https://github.com/aurelhubert/ahbottomnavigation' gitUrl = 'https://github.com/aurelhubert/ahbottomnavigation.git' - libraryVersion = '0.1.5' + libraryVersion = '0.1.6' developerId = 'aurelhubert' developerName = 'Aurelien Hubert' @@ -31,8 +31,8 @@ android { defaultConfig { minSdkVersion 16 targetSdkVersion 23 - versionCode 5 - versionName "0.1.5" + versionCode 6 + versionName "0.1.6" } buildTypes { release { diff --git a/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java b/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java index 0f4886b..f1e6186 100644 --- a/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java +++ b/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java @@ -173,30 +173,46 @@ public class AHBottomNavigation extends FrameLayout { float minWidth = context.getResources().getDimension(R.dimen.bottom_navigation_min_width); float maxWidth = context.getResources().getDimension(R.dimen.bottom_navigation_max_width); + if (forceTitlesDisplay && items.size() > MIN_ITEMS) { + minWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_min_width); + maxWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_max_width); + } + int layoutWidth = getWidth(); if (layoutWidth == 0 || items.size() == 0) { return; } float itemWidth = layoutWidth / items.size(); - if (forceTitlesDisplay) { - } else if (itemWidth < minWidth) { + if (itemWidth < minWidth) { itemWidth = minWidth; } else if (itemWidth > maxWidth) { itemWidth = maxWidth; } + float activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_active); + float inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_inactive); + if (forceTitlesDisplay && items.size() > MIN_ITEMS) { + activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_active); + inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_inactive); + } + for (int i = 0; i < items.size(); i++) { final int itemIndex = i; AHBottomNavigationItem item = items.get(itemIndex); View view = inflater.inflate(R.layout.bottom_navigation_item, this, false); + FrameLayout container = (FrameLayout) view.findViewById(R.id.bottom_navigation_container); ImageView icon = (ImageView) view.findViewById(R.id.bottom_navigation_item_icon); TextView title = (TextView) view.findViewById(R.id.bottom_navigation_item_title); icon.setImageDrawable(item.getDrawable(context)); title.setText(item.getTitle(context)); + if (forceTitlesDisplay && items.size() > MIN_ITEMS) { + container.setPadding(0, container.getPaddingTop(), 0, container.getPaddingBottom()); + } + if (i == currentItem) { int activePaddingTop = (int) context.getResources() .getDimension(R.dimen.bottom_navigation_padding_top_active); @@ -224,10 +240,7 @@ public class AHBottomNavigation extends FrameLayout { title.setTextColor(currentItem == i ? accentColor : inactiveColor); } - title.setTextSize(TypedValue.COMPLEX_UNIT_PX, currentItem == i ? - context.getResources().getDimension(R.dimen.bottom_navigation_text_size_active) : - context.getResources().getDimension(R.dimen.bottom_navigation_text_size_inactive)); - + title.setTextSize(TypedValue.COMPLEX_UNIT_PX, currentItem == i ? activeSize : inactiveSize); view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -343,6 +356,11 @@ public class AHBottomNavigation extends FrameLayout { int inactivePaddingTop = (int) context.getResources().getDimension(R.dimen.bottom_navigation_padding_top_inactive); float activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_active); float inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_inactive); + if (forceTitlesDisplay && items.size() > MIN_ITEMS) { + activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_active); + inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_inactive); + } + int itemActiveColor = colored ? ContextCompat.getColor(context, R.color.colorActiveSmall) : accentColor; int itemInactiveColor = colored ? ContextCompat.getColor(context, R.color.colorInactiveSmall) : diff --git a/ahbottomnavigation/src/main/res/values/dimens.xml b/ahbottomnavigation/src/main/res/values/dimens.xml index 39ab798..19996de 100644 --- a/ahbottomnavigation/src/main/res/values/dimens.xml +++ b/ahbottomnavigation/src/main/res/values/dimens.xml @@ -16,6 +16,9 @@ <dimen name="bottom_navigation_text_size_active">14sp</dimen> <dimen name="bottom_navigation_text_size_inactive">12sp</dimen> + <dimen name="bottom_navigation_text_size_forced_active">11sp</dimen> + <dimen name="bottom_navigation_text_size_forced_inactive">10sp</dimen> + <!-- Small --> <dimen name="bottom_navigation_small_active_min_width">96dp</dimen> <dimen name="bottom_navigation_small_active_max_width">168dp</dimen> |