本文将分享Android上的导航抽屉滞后的详细内容,并且还将对app抽屉式导航栏进行详尽解释,此外,我们还将为大家带来关于(Android)具有多窗格布局的导航抽屉、AndroidMVP和导航抽屉、a
本文将分享Android上的导航抽屉滞后的详细内容,并且还将对app抽屉式导航栏进行详尽解释,此外,我们还将为大家带来关于(Android)具有多窗格布局的导航抽屉、Android MVP和导航抽屉、android – 删除子部分和导航抽屉子菜单、android – 同一个Activity上的两个导航抽屉的相关知识,希望对你有所帮助。
本文目录一览:- Android上的导航抽屉滞后(app抽屉式导航栏)
- (Android)具有多窗格布局的导航抽屉
- Android MVP和导航抽屉
- android – 删除子部分和导航抽屉子菜单
- android – 同一个Activity上的两个导航抽屉
Android上的导航抽屉滞后(app抽屉式导航栏)
我在使用Navigation Drawer时遇到问题,它太慢了,我要寻找的解决方案是先关闭抽屉,然后显示活动,但它不起作用,肯定是我遗漏了一些东西。
private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int posicao, long id) { setLastPosition(posicao); setFragmentList(lastPosition); layoutDrawer.closeDrawer(linearDrawer); } } private OnClickListener userOnClick = new OnClickListener() { @Override public void onClick(View v) { layoutDrawer.closeDrawer(linearDrawer); } }; private void setFragmentList(int posicao) { FragmentManager fragmentManager = getSupportFragmentManager(); Fragment fragment = new FragmentViagens(); switch (posicao) { case 0: fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); break; case 1: fragmentManager.beginTransaction().replace(R.id.content_frame, new FragmentPedidos()).commit(); break; case 2: fragmentManager.beginTransaction().replace(R.id.content_frame, new FragmentClientes()).commit(); break; } navigationAdapter.setChecked(posicao, true); setTitleFragments(lastPosition); navigationAdapter.resetarCheck(); layoutDrawer.closeDrawer(linearDrawer); }
答案1
小编典典您可以通过这种方式来避免抽屉滞后,更改 onItemClick :
layoutDrawer.closeDrawer(linearDrawer);setLastPosition(posicao);new Handler().postDelayed(new Runnable() { @Override public void run() { setFragmentList(lastPosition); } }, 200);
编辑:
首选方式应该是在DrawerLayout上设置DrawerListener,然后onDrawerClosed
像这样设置片段:
Fragment mFragmentToSet = null;@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem item) { // Handle navigation view item clicks here. switch (item.getItemId()) { case R.id.nav_home: mFragmentToSet = HomeFragment.newInstance(); break; } mDrawerLayout.closeDrawer(GravityCompat.START); return true;}
mDrawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerSlide(View drawerView, float slideOffset) {} @Override public void onDrawerOpened(View drawerView) {} @Override public void onDrawerStateChanged(int newState) {} @Override public void onDrawerClosed(View drawerView) { //Set your new fragment here if (mFragmentToSet != null) { getSupportFragmentManager() .beginTransaction() .replace(FRAGMENT_CONTAINER_ID, mFragmentToSet) .commit(); mFragmentToSet = null; } } });
(Android)具有多窗格布局的导航抽屉
我很难为平板电脑的活动提供一个良好且可接受的布局,但是我不确定我的设计是否与Google的设计指南兼容.
简而言之:我的应用程序接收到一个网络嗅探器日志文件,并显示有关数据上不同功能的统计信息.例如,随着时间的流量,随着时间的PM,将流量显示为时间线,不同的图形,饼图等.
该活动的设计首先想到的是多窗格布局(如用于平板电脑的Gmail).第一个窗格将是上面指定的不同功能,第二个窗格将在第三个窗格上具有控件(它将显示图形)以过滤不同的数据,着色以及其他内容和设置.
问题在于,第二个窗格不是一个打开内容的列表(例如在Gmail中),而是一个控制第三个窗格的列表.
我对此的解决方案是只创建一个两窗格的布局:只有第二个(带有控件),当然还有第三个带有图形.功能列表将在导航抽屉中,用户必须滑动该导航抽屉才能切换到另一个功能.
该设计是否与Google的设计指南兼容?对用户来说是否合乎逻辑?
解决方法:
我不建议将导航抽屉用于平板电脑,至少不要在横向模式下使用.三个面板应该可以正常工作,并且您只能将导航抽屉用于纵向模式.
Android设计方法非常灵活,因此与其尝试使用最新的设计模式,不如找出最适合您数据的方法.
无论如何,一个应用程序可以在3个不同的面板中显示内容的一个很好的例子是Android wordpress应用程序.在这里查看:https://play.google.com/store/apps/details?id=org.wordpress.android
Android MVP和导航抽屉
是否有任何人都知道的首选方法或任何示例?
解决方法
android – 删除子部分和导航抽屉子菜单
我想删除子菜单中创建的不需要的空间.
有没有可能我可以从menu.xml类实现它?
这是我的navigation_drawer_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/all"
android:checked="true"
android:icon="@drawable/ic_channels"
android:title="All Channels" />
.......
<item
android:id="@+id/other"
android:icon="@drawable/ic_other"
android:title="Others" />
</group>
<item android:title="">
<menu>
<item
android:id="@+id/setting"
android:icon="@drawable/ic_action_settings"
android:title="Settings" />
<item
android:id="@+id/about"
android:icon="@drawable/ic_about"
android:title="About" />
<item
android:id="@+id/share"
android:icon="@drawable/ic_share"
android:title="Share" />
</menu>
</item>
谢谢.
解决方法:
这就是我实现它的方式.因为您要为菜单添加标题,所以无法识别它是空的.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav1"
android:checked="true"
android:title="Pos 1" />
<item
android:id="@+id/nav2"
android:title="Pos 2" />
</group>
<group
android:id="@+id/menu_two"
android:checkableBehavior="single">
<item
android:id="@+id/pos3"
android:title="Pos 3" />
<item
android:id="@+id/pos4"
android:title="Pos 4" />
</group>
</menu>
android – 同一个Activity上的两个导航抽屉
解决方法
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- The main content view --> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- The navigation drawer --> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#111"/> <ListView android:id="@+id/right_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="end" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#111"/> </android.support.v4.widget.DrawerLayout>
还要检查文档https://developer.android.com/training/implementing-navigation/nav-drawer.html
确保使用工具栏而非操作栏
关于Android上的导航抽屉滞后和app抽屉式导航栏的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于(Android)具有多窗格布局的导航抽屉、Android MVP和导航抽屉、android – 删除子部分和导航抽屉子菜单、android – 同一个Activity上的两个导航抽屉的相关知识,请在本站寻找。
本文标签: