Skip to content

Instantly share code, notes, and snippets.

@ar-android
Last active October 7, 2017 06:34
Show Gist options
  • Save ar-android/b92acf0a943cd6254e4ce36f4bbd9320 to your computer and use it in GitHub Desktop.
Save ar-android/b92acf0a943cd6254e4ce36f4bbd9320 to your computer and use it in GitHub Desktop.
Implement Observable ListView using kotlin
import android.os.Bundle
import android.support.design.widget.FloatingActionButton
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.Toolbar
import android.view.Menu
import android.view.MenuItem
import com.github.ksoichiro.android.observablescrollview.ObservableListView
import com.github.ksoichiro.android.observablescrollview.ObservableScrollViewCallbacks
import com.github.ksoichiro.android.observablescrollview.ScrollState
class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener, ObservableScrollViewCallbacks {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar = findViewById(R.id.toolbar) as Toolbar
setSupportActionBar(toolbar)
val ab = supportActionBar
ab!!.setHomeAsUpIndicator(R.drawable.ic_humberger_menu)
ab.setDisplayHomeAsUpEnabled(true)
val navigationView = findViewById(R.id.nav_view) as NavigationView
navigationView.setNavigationItemSelectedListener(this)
}
override fun onUpOrCancelMotionEvent(scrollState: ScrollState?) {
val ab = supportActionBar
val fab = findViewById(R.id.fab) as FloatingActionButton
if (scrollState === ScrollState.UP) {
if (ab!!.isShowing)
ab.hide()
if (fab.isShown)
fab.hide()
} else if (scrollState === ScrollState.DOWN) {
if (!ab!!.isShowing)
ab.show()
if (!fab.isShown)
fab.show()
}
}
override fun onScrollChanged(scrollY: Int, firstScroll: Boolean, dragging: Boolean) {
}
override fun onDownMotionEvent() {
}
override fun onBackPressed() {
val drawer = findViewById(R.id.drawer_layout) as DrawerLayout
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START)
} else {
super.onBackPressed()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment