在Android中禁用导航抽屉中的项目

时间:2013-07-08 16:24:26

标签: android disabled-control navigation-drawer

我正在使用导航抽屉示例downloadable here

我想扩展此示例以禁用其中一个行星的选择。为简单起见,假设我想永久禁用土星的选择,并将土星的文本更改为深灰色,并在用户选择它时不要突出显示。 (实际上,当用户更改屏幕上尚未保存到设备的某些值时,我想以编程方式禁用导航)。

我最接近的就是阻止selectItem()方法在onItemClick点击监听器中被调用,但即使我这样做,问题仍然存在 - “当用户点击它时,土星“仍然可以选择并突出显示。

我需要更改小部件的哪一部分以防止突出显示土星文本? 我试过改变

mDrawerLayout.setClickable(false);
mDrawerList.setClickable(false);

但这些选项似乎都没有任何影响。

有关如何解决此问题的任何建议或想法? 一些有用的笔记:

  1. 我知道我可以Set the Drawer Lock Mode阻止导航抽屉被打开,但这比使用灰色导航动作更不直观
  2. 这里更合适的做法是从列表中删除目前无法访问的项目吗?类似于Remove ListView implementation这里描述的?这样做的最大缺点是我可能不得不更改listview来描述为什么项目已暂时从此列表中删除。

1 个答案:

答案 0 :(得分:4)

  

我想扩展这个例子来禁用其中一个行星的选择

创建自己的ArrayAdapter子类,覆盖areAllItemsEnabled()以返回falseisEnabled()根据需要返回truefalse