Add bottom sheet modal example

dev_raz_wip
Aurelien Hubert 7 years ago
parent 74ba88a0a3
commit bb96179116
  1. 31
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BottomSheetFragment.kt
  2. 13
      app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt
  3. 12
      app/src/main/java/net/pokeranalytics/android/util/PokerAnalyticsFragment.kt
  4. 33
      app/src/main/res/layout/fragment_bottom_sheet_container.xml

@ -0,0 +1,31 @@
package net.pokeranalytics.android.ui.fragment
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.android.synthetic.main.fragment_bottom_sheet_container.*
import net.pokeranalytics.android.R
class BottomSheetFragment : BottomSheetDialogFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_bottom_sheet_container, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initUI()
}
/**
* Init UI
*/
private fun initUI() {
close.setOnClickListener {
dismiss()
}
}
}

@ -6,6 +6,10 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_new_session.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.ui.adapter.NewSessionAdapter
@ -45,6 +49,15 @@ class NewSessionFragment: PokerAnalyticsFragment() {
adapter = newSessionAdapter
}
// Bottom sheet example
/*
GlobalScope.launch(Dispatchers.Main) {
delay(2000)
val bottomSheetFragment = openBottomSheet()
delay(2000)
bottomSheetFragment.dismiss()
}
*/
}
/**

@ -1,9 +1,9 @@
package net.pokeranalytics.android.util
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import io.realm.Realm
import net.pokeranalytics.android.ui.fragment.BottomSheetFragment
open class PokerAnalyticsFragment: Fragment() {
@ -23,4 +23,14 @@ open class PokerAnalyticsFragment: Fragment() {
return pokerAnalyticsActivity.getRealm()
}
/**
* Open the bottom sheet
*/
fun openBottomSheet(): BottomSheetFragment {
//TODO: Give the data to display in the bottom sheet here
val bottomSheetFragment = BottomSheetFragment()
bottomSheetFragment.show(fragmentManager, "bottomSheet")
return bottomSheetFragment
}
}

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/appCompatTextView"
android:layout_width="0dp"
android:layout_height="220dp"
android:background="#222222"
android:gravity="center"
android:text="Bottom sheet fragment"
android:textSize="18sp"
android:textColor="#FFFFFF"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/close"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:background="?selectableItemBackgroundBorderless"
android:scaleType="centerInside"
android:src="@drawable/ic_close_24dp"
android:tint="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/appCompatTextView" />
</androidx.constraintlayout.widget.ConstraintLayout>
Loading…
Cancel
Save