diff --git a/app/src/main/java/com/mikepenz/materialdrawer/app/MultiDrawerActivity.kt b/app/src/main/java/com/mikepenz/materialdrawer/app/MultiDrawerActivity.kt index 6be3942a2..dd4d21625 100755 --- a/app/src/main/java/com/mikepenz/materialdrawer/app/MultiDrawerActivity.kt +++ b/app/src/main/java/com/mikepenz/materialdrawer/app/MultiDrawerActivity.kt @@ -62,6 +62,7 @@ class MultiDrawerActivity : AppCompatActivity() { } binding.sliderEnd.apply { + stickyHeaderView = layoutInflater.inflate(R.layout.header, null) itemAdapter.add( PrimaryDrawerItem().withName(R.string.drawer_item_home).withIcon(FontAwesome.Icon.faw_home).withIdentifier(1), PrimaryDrawerItem().withName(R.string.drawer_item_free_play).withIcon(FontAwesome.Icon.faw_gamepad), diff --git a/library/src/main/java/com/mikepenz/materialdrawer/util/DrawerUtils.kt b/library/src/main/java/com/mikepenz/materialdrawer/util/DrawerUtils.kt index de7c17264..eb33fa173 100644 --- a/library/src/main/java/com/mikepenz/materialdrawer/util/DrawerUtils.kt +++ b/library/src/main/java/com/mikepenz/materialdrawer/util/DrawerUtils.kt @@ -128,7 +128,9 @@ internal fun handleHeaderView(sliderView: MaterialDrawerSliderView) { view.layoutParams = lps } } - + if (Build.VERSION.SDK_INT >= 21) { + sliderView.elevation = 0f + } //remove the padding of the recyclerView again we have the header on top of it sliderView.recyclerView.setPadding(0, 0, 0, 0) } @@ -147,18 +149,18 @@ internal fun rebuildStickyFooterView(sliderView: MaterialDrawerSliderView) { } //fill the footer with items - fillStickyDrawerItemFooter(sliderView, it, View.OnClickListener { v -> + fillStickyDrawerItemFooter(sliderView, it) { v -> val drawerItem = v.getTag(R.id.material_drawer_item) as IDrawerItem<*> onFooterDrawerItemClick(sliderView, drawerItem, v, true) - }) + } it.visibility = View.VISIBLE } ?: run { //there was no footer yet. now just create one - handleFooterView(sliderView, View.OnClickListener { v -> + handleFooterView(sliderView) { v -> val drawerItem = v.getTag(R.id.material_drawer_item) as IDrawerItem<*> onFooterDrawerItemClick(sliderView, drawerItem, v, true) - }) + } } sliderView.setStickyFooterSelection(sliderView.currentStickyFooterSelection, false) diff --git a/library/src/main/java/com/mikepenz/materialdrawer/widget/MaterialDrawerSliderView.kt b/library/src/main/java/com/mikepenz/materialdrawer/widget/MaterialDrawerSliderView.kt index d2a4adf3c..58bb99cf2 100644 --- a/library/src/main/java/com/mikepenz/materialdrawer/widget/MaterialDrawerSliderView.kt +++ b/library/src/main/java/com/mikepenz/materialdrawer/widget/MaterialDrawerSliderView.kt @@ -202,9 +202,9 @@ open class MaterialDrawerSliderView @JvmOverloads constructor(context: Context, // set the footer (do this before the setAdapter because some devices will crash else if (value != null) { if (footerDivider) { - footerAdapter.add(ContainerDrawerItem().withView(value).withViewPosition(ContainerDrawerItem.Position.BOTTOM)) + footerAdapter.add(ContainerDrawerItem().apply { view = value; viewPosition = ContainerDrawerItem.Position.BOTTOM }) } else { - footerAdapter.add(ContainerDrawerItem().withView(value).withViewPosition(ContainerDrawerItem.Position.NONE)) + footerAdapter.add(ContainerDrawerItem().apply { view = value; viewPosition = ContainerDrawerItem.Position.NONE }) } } } @@ -411,7 +411,12 @@ open class MaterialDrawerSliderView @JvmOverloads constructor(context: Context, this.insets?.set(insets.systemWindowInsetLeft, insets.systemWindowInsetTop, insets.systemWindowInsetRight, insets.systemWindowInsetBottom) if (headerView == null && accountHeader == null) { - recyclerView.updatePadding(top = insets.systemWindowInsetTop, bottom = insets.systemWindowInsetBottom) + if (stickyHeaderView == null) { + recyclerView.updatePadding(top = insets.systemWindowInsetTop) + } + if (stickyFooterView == null) { + recyclerView.updatePadding(bottom = insets.systemWindowInsetBottom) + } } setWillNotDraw(insetForeground == null)