GVKun编程网logo

Android上的导航抽屉滞后(app抽屉式导航栏)

16

本文将分享Android上的导航抽屉滞后的详细内容,并且还将对app抽屉式导航栏进行详尽解释,此外,我们还将为大家带来关于(Android)具有多窗格布局的导航抽屉、AndroidMVP和导航抽屉、a

本文将分享Android上的导航抽屉滞后的详细内容,并且还将对app抽屉式导航栏进行详尽解释,此外,我们还将为大家带来关于(Android)具有多窗格布局的导航抽屉、Android MVP和导航抽屉、android – 删除子部分和导航抽屉子菜单、android – 同一个Activity上的两个导航抽屉的相关知识,希望对你有所帮助。

本文目录一览:

Android上的导航抽屉滞后(app抽屉式导航栏)

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)具有多窗格布局的导航抽屉

(Android)具有多窗格布局的导航抽屉

我很难为平板电脑的活动提供一个良好且可接受的布局,但是我不确定我的设计是否与Google的设计指南兼容.

简而言之:我的应用程序接收到一个网络嗅探器日志文件,并显示有关数据上不同功能的统计信息.例如,随着时间的流量,随着时间的PM,将流量显示为时间线,不同的图形,饼图等.

该活动的设计首先想到的是多窗格布局(如用于平板电脑的Gmail).第一个窗格将是上面指定的不同功能,第二个窗格将在第三个窗格上具有控件(它将显示图形)以过滤不同的数据,着色以及其他内容和设置.

问题在于,第二个窗格不是一个打开内容的列表(例如在Gmail中),而是一个控制第三个窗格的列表.

我对此的解决方案是只创建一个两窗格的布局:只有第二个(带有控件),当然还有第三个带有图形.功能列表将在导航抽屉中,用户必须滑动该导航抽屉才能切换到另一个功能.

该设计是否与Google的设计指南兼容?对用户来说是否合乎逻辑?

解决方法:

我不建议将导航抽屉用于平板电脑,至少不要在横向模式下使用.三个面板应该可以正常工作,并且您只能将导航抽屉用于纵向模式.

Android设计方法非常灵活,因此与其尝试使用最新的设计模式,不如找出最适合您数据的方法.

无论如何,一个应用程序可以在3个不同的面板中显示内容的一个很好的例子是Android wordpress应用程序.在这里查看:https://play.google.com/store/apps/details?id=org.wordpress.android

Android MVP和导航抽屉

Android MVP和导航抽屉

我刚刚使用MVP开始了一个新项目.似乎缺乏关于此方法的结构化信息,尤其是如何将其应用于导航抽屉的示例或细节.

是否有任何人都知道的首选方法或任何示例?

解决方法

使用像这样的东西 example

android – 删除子部分和导航抽屉子菜单

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>

Navigation drawer android

谢谢.

解决方法:

这就是我实现它的方式.因为您要为菜单添加标题,所以无法识别它是空的.

<?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 – 同一个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上的两个导航抽屉的相关知识,请在本站寻找。

本文标签: