Skip to content

Commit

Permalink
- added README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Nkgohil007 committed Aug 17, 2021
1 parent e43bb9b commit a710c0f
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -98,23 +98,23 @@ class LiquidNavBar(context: Context, attrs: AttributeSet?) :
when (position) {
0 -> {
binding!!.icon1.translationY =
(-binding!!.bottomNavigationView.liquidTabVerticalOffset * value) - 19f
(-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value) - 19f
}
1 -> {
binding!!.icon2.translationY =
(-binding!!.bottomNavigationView.liquidTabVerticalOffset * value) - 19f
(-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value) - 19f
}
2 -> {
binding!!.icon3.translationY =
(-binding!!.bottomNavigationView.liquidTabVerticalOffset * value) - 19f
(-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value) - 19f
}
3 -> {
binding!!.icon4.translationY =
(-binding!!.bottomNavigationView.liquidTabVerticalOffset * value) - 19f
(-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value) - 19f
}
4 -> {
binding!!.icon5.translationY =
(-binding!!.bottomNavigationView.liquidTabVerticalOffset * value) - 19f
(-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value) - 19f
}
}
}
Expand All @@ -125,23 +125,23 @@ class LiquidNavBar(context: Context, attrs: AttributeSet?) :
when (position) {
0 -> {
binding!!.icon1.translationY =
-binding!!.bottomNavigationView.liquidTabVerticalOffset * value
-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value
}
1 -> {
binding!!.icon2.translationY =
-binding!!.bottomNavigationView.liquidTabVerticalOffset * value
-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value
}
2 -> {
binding!!.icon3.translationY =
-binding!!.bottomNavigationView.liquidTabVerticalOffset * value
-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value
}
3 -> {
binding!!.icon4.translationY =
-binding!!.bottomNavigationView.liquidTabVerticalOffset * value
-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value
}
4 -> {
binding!!.icon5.translationY =
-binding!!.bottomNavigationView.liquidTabVerticalOffset * value
-binding!!.bottomNavigationView.liquidNavbarVerticalOffset * value
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,26 +30,26 @@ class LiquidNavBarView : BottomNavigationView, NavigationBarView.OnItemSelectedL
private var selectionAnimator: ValueAnimator? = null
private var deselectAnimator: ValueAnimator? = null

private var liquidTabItemRadius: Float = 0f
private var liquidNavbarItemRadius: Float = 0f
set(radius) {
field = radius
topEdgeTreatment.liquidTabItemRadius = radius
topEdgeTreatment.liquidNavbarItemRadius = radius
invalidate()
}

private var liquidTabCornerRadius: Float = 0f
private var liquidNavbarCornerRadius: Float = 0f
set(radius) {
field = radius
topEdgeTreatment.liquidTabCornerRadius = radius
topEdgeTreatment.liquidNavbarCornerRadius = radius
invalidate()
}

var liquidTabVerticalOffset: Float = 0f
var liquidNavbarVerticalOffset: Float = 0f
set(offset) {
field = offset
topEdgeTreatment.liquidTabVerticalOffset = offset
topEdgeTreatment.liquidNavbarVerticalOffset = offset
if (layoutParams != null) {
layoutParams.height = (height + liquidTabVerticalOffset).toInt()
layoutParams.height = (height + liquidNavbarVerticalOffset).toInt()
}

invalidate()
Expand All @@ -73,16 +73,16 @@ class LiquidNavBarView : BottomNavigationView, NavigationBarView.OnItemSelectedL
val backgroundTint =
a.getColor(R.styleable.LiquidTabBarView_backgroundTint, typedValue.data)

val liquidTabItemRadius = a.getDimensionPixelSize(
R.styleable.LiquidTabBarView_liquidTabItemRadius,
val liquidNavbarItemRadius = a.getDimensionPixelSize(
R.styleable.LiquidTabBarView_liquidNavbarItemRadius,
dpToPx(64f).toInt()
).toFloat()
val liquidTabVerticalOffset = a.getDimensionPixelSize(
R.styleable.LiquidTabBarView_liquidTabVerticalOffset,
val liquidNavbarVerticalOffset = a.getDimensionPixelSize(
R.styleable.LiquidTabBarView_liquidNavbarVerticalOffset,
dpToPx(8f).toInt()
).toFloat()
val liquidTabCornerRadius = a.getDimensionPixelSize(
R.styleable.LiquidTabBarView_liquidTabCornerRadius,
val liquidNavbarCornerRadius = a.getDimensionPixelSize(
R.styleable.LiquidTabBarView_liquidNavbarCornerRadius,
dpToPx(128f).toInt()
).toFloat()
a.recycle()
Expand All @@ -93,14 +93,14 @@ class LiquidNavBarView : BottomNavigationView, NavigationBarView.OnItemSelectedL

topEdgeTreatment = LiquidNavBarViewDraw(
bottomNavigationMenuView,
liquidTabItemRadius,
liquidTabVerticalOffset,
liquidTabCornerRadius
liquidNavbarItemRadius,
liquidNavbarVerticalOffset,
liquidNavbarCornerRadius
)

this.liquidTabItemRadius = liquidTabItemRadius
this.liquidTabVerticalOffset = liquidTabVerticalOffset
this.liquidTabCornerRadius = liquidTabCornerRadius
this.liquidNavbarItemRadius = liquidNavbarItemRadius
this.liquidNavbarVerticalOffset = liquidNavbarVerticalOffset
this.liquidNavbarCornerRadius = liquidNavbarCornerRadius

val shapePathModel = ShapeAppearanceModel().toBuilder().setTopEdge(topEdgeTreatment).build()
materialShapeDrawable = MaterialShapeDrawable(shapePathModel)
Expand Down Expand Up @@ -170,7 +170,7 @@ class LiquidNavBarView : BottomNavigationView, NavigationBarView.OnItemSelectedL
override fun onAttachedToWindow() {
super.onAttachedToWindow()
// Change height
layoutParams.height = (height + liquidTabVerticalOffset).toInt()
layoutParams.height = (height + liquidNavbarVerticalOffset).toInt()
}

override fun setOnItemSelectedListener(listener: OnItemSelectedListener?) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import com.google.android.material.shape.ShapePath
class LiquidNavBarViewDraw(

private val bottomNavigationMenuView: BottomNavigationMenuView,
var liquidTabItemRadius: Float,
var liquidTabVerticalOffset: Float,
var liquidTabCornerRadius: Float
var liquidNavbarItemRadius: Float,
var liquidNavbarVerticalOffset: Float,
var liquidNavbarCornerRadius: Float
) : EdgeTreatment() {
private lateinit var magicPath: MagicPath

Expand All @@ -27,21 +27,21 @@ class LiquidNavBarViewDraw(
shapePath: ShapePath
) {
magicPath =
MagicPath.create(0f, liquidTabVerticalOffset, length, liquidTabVerticalOffset)
MagicPath.create(0f, liquidNavbarVerticalOffset, length, liquidNavbarVerticalOffset)

bottomNavigationMenuView.forEachIndexed { i, view ->
var liquidTabHeightOffset = 0f


if (i == selectedItem) {
liquidTabHeightOffset = interpolation * liquidTabVerticalOffset
liquidTabHeightOffset = interpolation * liquidNavbarVerticalOffset
}
val itemRect = view.globalVisibleRect

val centerRadius = liquidTabItemRadius
val borderRadius = liquidTabCornerRadius
val centerRadius = liquidNavbarItemRadius
val borderRadius = liquidNavbarCornerRadius
val centerX = itemRect.centerX().toFloat()
val centerY = liquidTabVerticalOffset + centerRadius - liquidTabHeightOffset
val centerY = liquidNavbarVerticalOffset + centerRadius - liquidTabHeightOffset

val centerCircle =
MagicPath.CircleShape(
Expand All @@ -53,15 +53,15 @@ class LiquidNavBarViewDraw(

val leftCircle = MagicPath.CircleShape(
centerX,
liquidTabVerticalOffset - borderRadius,
liquidNavbarVerticalOffset - borderRadius,
borderRadius,
MagicPath.PathDirection.C_CLOCKWISE
)
centerCircle.shiftOutside(leftCircle, MagicPath.ShiftMode.LEFT)

val rightCircle = MagicPath.CircleShape(
centerX,
liquidTabVerticalOffset - borderRadius,
liquidNavbarVerticalOffset - borderRadius,
borderRadius,
MagicPath.PathDirection.C_CLOCKWISE
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
app:labelVisibilityMode="selected"
app:itemBackground="@android:color/transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:liquidTabCornerRadius="40dp"
app:liquidTabItemRadius="20dp"
app:liquidTabVerticalOffset="104dp" />
app:liquidNavbarCornerRadius="40dp"
app:liquidNavbarItemRadius="20dp"
app:liquidNavbarVerticalOffset="104dp" />

<LinearLayout
android:layout_width="match_parent"
Expand Down
6 changes: 3 additions & 3 deletions LiquidNavBar/src/main/res/values/attrs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<resources>
<declare-styleable name="LiquidTabBarView">
<attr name="backgroundTint" format="color" />
<attr name="liquidTabItemRadius" format="dimension" />
<attr name="liquidTabVerticalOffset" format="dimension" />
<attr name="liquidTabCornerRadius" format="dimension" />
<attr name="liquidNavbarItemRadius" format="dimension" />
<attr name="liquidNavbarVerticalOffset" format="dimension" />
<attr name="liquidNavbarCornerRadius" format="dimension" />
</declare-styleable>

<declare-styleable name="CustomBottomNavigationView">
Expand Down

0 comments on commit a710c0f

Please sign in to comment.