【问题标题】:Android Navigation Drawer - Hide/Show list itemAndroid 导航抽屉 - 隐藏/显示列表项
【发布时间】:2016-01-25 11:37:39
【问题描述】:

我有一个类定义了导航抽屉的 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。然后,其他人呢?

谢谢。

【问题讨论】:

    标签: android navigation-drawer show-hide


    【解决方案1】:

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

    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() 中生成的列表。

    【讨论】:

    • 我知道了。所以,我需要找到一种方法来访问 mConfiguration 以更改子列表。
    • 在boolean newDrawer返回false后再次调用getConfiguration()应该足够了。
    猜你喜欢
    • 2023-04-07
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多