import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
import
com.google.android.material.floatingactionbutton.FloatingActionButton
class
MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val fab: ExtendedFloatingActionButton = findViewById(R.id.extendedFAB)
val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
var recyclerViewData = listOf<RecyclerViewData>()
recyclerViewData = recyclerViewData + RecyclerViewData(
"1"
,
"One"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"2"
,
"Two"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"3"
,
"Three"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"4"
,
"Four"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"5"
,
"Five"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"6"
,
"Six"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"7"
,
"Seven"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"8"
,
"Eight"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"9"
,
"Nine"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"10"
,
"Ten"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"11"
,
"Eleven"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"12"
,
"Twelve"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"13"
,
"Thirteen"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"14"
,
"Fourteen"
)
recyclerViewData = recyclerViewData + RecyclerViewData(
"15"
,
"Fifteen"
)
val layoutManager = LinearLayoutManager(
this
, LinearLayoutManager.VERTICAL,
false
)
val myRecyclerViewAdapter = MyRecyclerViewAdapter(recyclerViewData)
recyclerView.adapter = myRecyclerViewAdapter
recyclerView.layoutManager = layoutManager
myRecyclerViewAdapter.notifyDataSetChanged()
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super
.onScrolled(recyclerView, dx, dy)
if
(dy >
10
&& fab.isExtended) {
fab.shrink()
}
if
(dy < -
10
&& !fab.isExtended) {
fab.extend()
}
if
(!recyclerView.canScrollVertically(-
1
)) {
fab.extend()
}
}
})
}
}