Forráskód Böngészése

Added transparency for bottom navigation

Vadik Sirekanyan 5 éve
szülő
commit
b5718b1e0f

+ 25 - 0
app/src/main/java/com/sirekanyan/knigopis/common/android/recycler/BottomOffsetItemDecoration.kt

@@ -0,0 +1,25 @@
+package com.sirekanyan.knigopis.common.android.recycler
+
+import android.content.Context
+import android.graphics.Rect
+import android.view.View
+import androidx.recyclerview.widget.RecyclerView
+import com.sirekanyan.knigopis.R
+
+class BottomOffsetItemDecoration(context: Context) : RecyclerView.ItemDecoration() {
+
+    private val offset = context.resources.getDimensionPixelSize(R.dimen.bottom_navigation_height)
+
+    override fun getItemOffsets(
+        outRect: Rect,
+        view: View,
+        parent: RecyclerView,
+        state: RecyclerView.State
+    ) {
+        val itemPosition = parent.getChildAdapterPosition(view)
+        if (itemPosition == state.itemCount - 1) {
+            outRect.bottom = offset
+        }
+    }
+
+}

+ 2 - 0
app/src/main/java/com/sirekanyan/knigopis/feature/books/BooksView.kt

@@ -7,6 +7,7 @@ import com.sirekanyan.knigopis.common.android.dialog.DialogFactory
 import com.sirekanyan.knigopis.common.android.dialog.createDialogItem
 import com.sirekanyan.knigopis.common.android.header.HeaderItemDecoration
 import com.sirekanyan.knigopis.common.android.header.StickyHeaderImpl
+import com.sirekanyan.knigopis.common.android.recycler.BottomOffsetItemDecoration
 import com.sirekanyan.knigopis.common.android.toast.CommonView
 import com.sirekanyan.knigopis.common.extensions.getFullTitleString
 import com.sirekanyan.knigopis.common.extensions.hide
@@ -51,6 +52,7 @@ class BooksViewImpl(
     init {
         booksRecyclerView.adapter = booksAdapter
         booksRecyclerView.addItemDecoration(HeaderItemDecoration(StickyHeaderImpl(booksAdapter)))
+        booksRecyclerView.addItemDecoration(BottomOffsetItemDecoration(context))
         booksRecyclerView.addOnScrollListener(FabOnScrollListener(resources, addBookButton))
         addBookButton.setOnClickListener { callbacks.onAddBookClicked() }
     }

+ 2 - 0
app/src/main/java/com/sirekanyan/knigopis/feature/notes/NotesView.kt

@@ -1,6 +1,7 @@
 package com.sirekanyan.knigopis.feature.notes
 
 import android.view.View
+import com.sirekanyan.knigopis.common.android.recycler.BottomOffsetItemDecoration
 import com.sirekanyan.knigopis.common.extensions.hide
 import com.sirekanyan.knigopis.common.extensions.show
 import com.sirekanyan.knigopis.common.functions.handleError
@@ -33,6 +34,7 @@ class NotesViewImpl(
 
     init {
         notesRecyclerView.adapter = notesAdapter
+        notesRecyclerView.addItemDecoration(BottomOffsetItemDecoration(containerView.context))
     }
 
     override fun updateNotes(notes: List<NoteModel>) {

+ 2 - 0
app/src/main/java/com/sirekanyan/knigopis/feature/users/UsersView.kt

@@ -4,6 +4,7 @@ import android.view.View
 import com.sirekanyan.knigopis.common.android.dialog.DialogFactory
 import com.sirekanyan.knigopis.common.android.dialog.DialogItem
 import com.sirekanyan.knigopis.common.android.dialog.createDialogItem
+import com.sirekanyan.knigopis.common.android.recycler.BottomOffsetItemDecoration
 import com.sirekanyan.knigopis.common.extensions.hide
 import com.sirekanyan.knigopis.common.extensions.show
 import com.sirekanyan.knigopis.common.functions.handleError
@@ -41,6 +42,7 @@ class UsersViewImpl(
 
     init {
         usersRecyclerView.adapter = usersAdapter
+        usersRecyclerView.addItemDecoration(BottomOffsetItemDecoration(containerView.context))
     }
 
     override fun updateUsers(users: List<UserModel>) {

+ 10 - 9
app/src/main/res/layout/activity_main.xml

@@ -41,17 +41,18 @@
                 android:alpha="0"
                 tools:alpha="1" />
 
+            <com.google.android.material.bottomnavigation.BottomNavigationView
+                android:id="@+id/bottomNavigation"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/bottom_navigation_height"
+                android:layout_gravity="bottom"
+                android:background="@color/knigopis_color_bottom_navigation"
+                android:visibility="gone"
+                app:elevation="0dp"
+                app:menu="@menu/navigation" />
+
         </FrameLayout>
 
     </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
 
-    <com.google.android.material.bottomnavigation.BottomNavigationView
-        android:id="@+id/bottomNavigation"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="bottom"
-        android:background="@color/knigopis_color_bottom_navigation"
-        android:visibility="gone"
-        app:menu="@menu/navigation" />
-
 </LinearLayout>

+ 2 - 1
app/src/main/res/layout/books_page.xml

@@ -30,7 +30,8 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="end|bottom"
-        android:layout_margin="16dp"
+        android:layout_marginEnd="16dp"
+        android:layout_marginBottom="72dp"
         android:src="@drawable/ic_add" />
 
 </FrameLayout>

+ 4 - 2
app/src/main/res/values/colors.xml

@@ -11,9 +11,7 @@
     <color name="common_blue_gray_500">#607D8B</color>
     <color name="common_teal_accent_700">#00BFA5</color>
     <color name="common_grey_950">#101010</color>
-    <color name="common_grey_875">#292929</color>
     <color name="common_grey_850">#303030</color>
-    <color name="common_grey_50">#FAFAFA</color>
     <color name="common_white">#ffffff</color>
     <color name="white_12">#1FFFFFFF</color>
     <color name="white_38">#61FFFFFF</color>
@@ -27,6 +25,10 @@
     <color name="grey_50">#80808080</color>
     <color name="ic_launcher_background">#512DA8</color>
 
+    <!-- bottom navigation -->
+    <color name="common_grey_875">#FB292929</color>
+    <color name="common_grey_50">#FBFAFAFA</color>
+
     <!-- login -->
     <color name="social_vk">#5181B8</color>
     <color name="social_go">#4A8BF6</color>

+ 2 - 1
app/src/main/res/values/dimens.xml

@@ -5,13 +5,14 @@
     <dimen name="activity_vertical_margin">16dp</dimen>
 
     <!-- books -->
-    <dimen name="fab_offset_x">44dp</dimen>
+    <dimen name="fab_offset_x">72dp</dimen>
     <dimen name="fab_offset_y">72dp</dimen>
 
     <!-- user avatar -->
     <dimen name="avatar_size_expanded">88dp</dimen>
     <dimen name="toolbar_height">56dp</dimen>
     <dimen name="app_bar_height">160dp</dimen>
+    <dimen name="bottom_navigation_height">56dp</dimen>
     <dimen name="title_start_margin_expanded">120dp</dimen>
     <dimen name="title_start_margin_collapsed">48dp</dimen>
     <dimen name="image_view_elevation">4dp</dimen>