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

Added transparency for toolbar

Vadik Sirekanyan 5 éve
szülő
commit
c221c41ee5

+ 25 - 0
app/src/main/java/com/sirekanyan/knigopis/common/android/recycler/TopOffsetItemDecoration.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 TopOffsetItemDecoration(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 == 0) {
+            outRect.top = offset
+        }
+    }
+
+}

+ 6 - 0
app/src/main/java/com/sirekanyan/knigopis/feature/ProgressView.kt

@@ -1,6 +1,7 @@
 package com.sirekanyan.knigopis.feature
 
 import android.view.View
+import com.sirekanyan.knigopis.R
 import com.sirekanyan.knigopis.common.extensions.hide
 import com.sirekanyan.knigopis.common.extensions.show
 import kotlinx.android.extensions.LayoutContainer
@@ -24,7 +25,12 @@ class ProgressViewImpl(
 ) : ProgressView,
     LayoutContainer {
 
+    private val resources = containerView.resources
+    private val startOffset = resources.getDimensionPixelSize(R.dimen.swipe_refresh_start_offset)
+    private val endOffset = resources.getDimensionPixelSize(R.dimen.swipe_refresh_end_offset)
+
     init {
+        swipeRefresh.setProgressViewOffset(true, startOffset, endOffset)
         swipeRefresh.setOnRefreshListener(callbacks::onRefreshSwiped)
     }
 

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

@@ -2,6 +2,7 @@ package com.sirekanyan.knigopis.feature.notes
 
 import android.view.View
 import com.sirekanyan.knigopis.common.android.recycler.BottomOffsetItemDecoration
+import com.sirekanyan.knigopis.common.android.recycler.TopOffsetItemDecoration
 import com.sirekanyan.knigopis.common.extensions.hide
 import com.sirekanyan.knigopis.common.extensions.keepOnTop
 import com.sirekanyan.knigopis.common.extensions.show
@@ -35,6 +36,7 @@ class NotesViewImpl(
 
     init {
         notesRecyclerView.adapter = notesAdapter
+        notesRecyclerView.addItemDecoration(TopOffsetItemDecoration(containerView.context))
         notesRecyclerView.addItemDecoration(BottomOffsetItemDecoration(containerView.context))
     }
 

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

@@ -5,6 +5,7 @@ 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.android.recycler.TopOffsetItemDecoration
 import com.sirekanyan.knigopis.common.extensions.hide
 import com.sirekanyan.knigopis.common.extensions.keepOnTop
 import com.sirekanyan.knigopis.common.extensions.show
@@ -43,6 +44,7 @@ class UsersViewImpl(
 
     init {
         usersRecyclerView.adapter = usersAdapter
+        usersRecyclerView.addItemDecoration(TopOffsetItemDecoration(containerView.context))
         usersRecyclerView.addItemDecoration(BottomOffsetItemDecoration(containerView.context))
     }
 

+ 6 - 8
app/src/main/res/layout/activity_main.xml

@@ -1,20 +1,17 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/container"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    tools:context=".feature.MainActivity">
+    android:layout_height="match_parent">
 
     <include layout="@layout/default_app_bar" />
 
     <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
         android:id="@+id/swipeRefresh"
         android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1">
+        android:layout_height="match_parent">
 
         <FrameLayout
             android:layout_width="match_parent"
@@ -49,10 +46,11 @@
                 android:background="@color/knigopis_color_bottom_navigation"
                 android:visibility="gone"
                 app:elevation="0dp"
-                app:menu="@menu/navigation" />
+                app:menu="@menu/navigation"
+                tools:visibility="visible" />
 
         </FrameLayout>
 
     </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
 
-</LinearLayout>
+</FrameLayout>

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

@@ -5,6 +5,7 @@
     android:id="@+id/booksPage"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:layout_marginTop="@dimen/toolbar_height"
     tools:ignore="MergeRootFrame">
 
     <androidx.recyclerview.widget.RecyclerView

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

@@ -3,7 +3,8 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/app_bar_layout"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    android:alpha="0.98">
 
     <com.google.android.material.appbar.MaterialToolbar
         android:id="@+id/toolbar"

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

@@ -12,6 +12,8 @@
     <dimen name="avatar_size_expanded">88dp</dimen>
     <dimen name="toolbar_height">56dp</dimen>
     <dimen name="app_bar_height">160dp</dimen>
+    <dimen name="swipe_refresh_start_offset">36dp</dimen>
+    <dimen name="swipe_refresh_end_offset">80dp</dimen>
     <dimen name="bottom_navigation_height">56dp</dimen>
     <dimen name="title_start_margin_expanded">120dp</dimen>
     <dimen name="title_start_margin_collapsed">48dp</dimen>