我希望我的菜单在单击菜单时在其下方显示子菜单.我已经尝试了几种方法,但我无法使其发挥作用.每次单击菜单时应用程序都会崩溃.
这是我的Java
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_gallery) {
MenuItem acc1 = (MenuItem) findViewById(R.id.manage_profile);
}
else if (id == R.id.manage_profile) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
else if (id == R.id.nav_gallery2) {
}
else if (id == R.id.search_school) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
else if (id == R.id.school_vielnearby) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
else if (id …Run Code Online (Sandbox Code Playgroud) 基本上我希望我的 recyclerview 自动滚动到项目未显示一半的位置。就像 googleplay 中的那个。
我写了一个代码
public void scrollToVisible(){
int firstVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
View view = recyclerView.getLayoutManager().getChildAt(0);
if (firstVisibleItemPosition > 0 && view != null) {
int offsetTop = view.getTop();
if (firstVisibleItemPosition - 1 >= 0 && adapter.getItemCount() > 0) {
((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(firstVisibleItemPosition - 1, offsetTop);
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题来了。我不知道把这段代码放在哪里。当 recyclerview 停止滚动时,我有一个模糊的想法,但我已经搜索了很长一段时间,但找不到这样的方法。当我把它放在 onScroll 上时会出现一些意想不到的行为