Saya telah mengikuti panduan laci navigasi oleh Google dan saya ingin menambahkannya ke Aktivitas dengan tab dan gerakan.
Saya ingin menonaktifkan gerakan untuk membuka laci navigasi, apakah ada yang tahu bagaimana melakukan ini?
Saya telah mengikuti panduan laci navigasi oleh Google dan saya ingin menambahkannya ke Aktivitas dengan tab dan gerakan.
Saya ingin menonaktifkan gerakan untuk membuka laci navigasi, apakah ada yang tahu bagaimana melakukan ini?
Jawaban:
Kamu harus menggunakan:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Ini berhasil bagi saya, gesekan untuk membuka laci dinonaktifkan.
Jika masih tidak berhasil, lihat jawaban yang disediakan di sini .
mDrawerLayout
, tetapkan sebagai berikut:mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ToolBar
(API 21) dan menggunakan SlidingTabLayout
fitur yang dimilikinya, yang bertentangan dengan Nav saya. laci menggesek. Jadi saya lebih suka menonaktifkan Nav. laci slide yang mendukung ToolBar
fitur geser.
untuk mengunci Anda dapat melakukan ini:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
dan untuk membuka kunci:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
Tambahkan nilai gravitasi juga saat menggunakan setDrawerLockMode () ;
Melakukan hal ini :
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END);
Ini harus bekerja seperti pesona
Untuk menggesekkan menonaktifkan, menimpa onInterceptTouchEvent
dan onTouchEvent
pada DrawerLayout
dan mereka kembali palsu.
Jawaban untuk menonaktifkan swiping adalah yang benar. Saya pikir LOCK_MODE_LOCKED_CLOSED berfungsi di Compat 24.x, tetapi fungsinya telah diubah di pustaka compat yang lebih baru dan LOCK_MODE_LOCKED_CLOSED sekarang sepenuhnya mencegah menu nav untuk ditampilkan, bahkan melalui penggunaan menu hamburger.
Kelas berikut ini cocok untuk saya (Kotlin):
class MyDrawerLayout(ctx: Context) : DrawerLayout(ctx) {
var isSwipeOpenEnabled: Boolean = true
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
if (!isSwipeOpenEnabled && !isDrawerVisible(Gravity.START)) {
return false
}
return super.onInterceptTouchEvent(ev)
}
@SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(ev: MotionEvent): Boolean {
if (!isSwipeOpenEnabled && !isDrawerVisible(Gravity.START)) {
return false
}
return super.onTouchEvent(ev)
}
}
Ini bekerja untuk saya
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});