繁体   English   中英

Android导航抽屉-隐藏/显示列表项

[英]Android Navigation Drawer - Hide/Show list item

我有一类定义导航抽屉的itens列表,我希望根据特定事件隐藏或显示其中的一些。

下面是定义itens列表的类:

public class Config {

  public static List<NavItem> configuration() {

    List<NavItem> i = new ArrayList<NavItem>();

    //DONT MODIFY ABOVE THIS LINE
    i.add(new NavItem("Item01", R.drawable.ic_action_favorite, NavItem.SECTION));
    i.add(new NavItem("Item02", R.drawable.ic_details, NavItem.ITEM, HomeFragment.class, null));
    i.add(new NavItem("Item03", R.drawable.ic_vistoria_blue, NavItem.ITEM, VistoriaActivity.class));

    i.add(new NavItem("Item04", R.drawable.ic_details, NavItem.ITEM, BotaoPanicoFragment.class, null));
    i.add(new NavItem("Item05", R.drawable.ic_details, NavItem.ITEM, BotoeiraFragment.class, null));

    i.add(new NavItem("Item06", R.drawable.ic_action_settings, NavItem.SECTION));
    i.add(new NavItem("Item07", R.drawable.ic_action_favorite, NavItem.EXTRA, SyncImportFragment.class, null));

    //DONT MODIFY BELOW THIS LINE

    return i;
  }
}

在我的片段中,我调用以下内容以获取抽屉列表:

private List<NavItem> getConfiguration(){
    if (null == mConfiguration){
        mConfiguration = Config.configuration();

        boolean newDrawer = getResources().getBoolean(R.bool.newdrawer);

        if (newDrawer == true){
            mConfiguration.add(0, new NavItem("Header", NavItem.TOP));
        }
    }

    return mConfiguration;
}

有人可以帮助我在开始时仅显示item01,item02和item03。 然后,其他人呢?

谢谢。

您可以使用准备好的列表的子列表,如果抽屉是新的,则可以在已修改返回列表的同一位置实现此子列表:

if (newDrawer == true){
    mConfiguration = mConfiguration.sublist(0, 2);
    mConfiguration.add(0, new NavItem("Header", NavItem.TOP));
} else {
    //No changes needed, use direct result of configuration()
}

我假设稍后会再次调用getConfiguration(),然后进入false分支,导致返回在configuration()中生成的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM