2013-07-08 21 views
1

我正在使用导航抽屉示例downloadable here在Android导航抽屉中禁用项目

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

我得到的最接近的东西是停止从onItemClick点击监听器中调用selectItem()方法,但即使我这样做,问题仍然存在 - “土星”的文本仍然显示为可选,并且突出显示当用户点击它时。

为了防止突出显示土星文本,我需要更改哪些部件?
我试着改变

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

但没有这些选项出现在有任何影响。

有关如何解决此问题的任何建议或想法? 一对夫妇有帮助的说明:

  1. 我知道,或者我可以Set the Drawer Lock Mode,以防止被打开抽屉式导航栏中,但是这是直观远低于已经变成灰色导航行动
  2. 是比较合适的做法在这里要做的是从列表中删除目前无法访问的项目?类似于Remove ListView implementation这里所描述的?最大的缺点是我可能不得不改变列表视图来描述为什么项目已经从这个列表中暂时删除。

回答

4

我想延长这个例子中,你重写areAllItemsEnabled()禁用行星之一的选择

创建您自己的ArrayAdapter子返回falseisEnabled()返回true或根据需要使用false

+0

请问您可以发布此代码的示例吗? – user1363871

+1

@ user1363871:当您使用搜索引擎查找涉及这些方法的示例时,您发现了什么? – CommonsWare

+0

谢谢,作品完美! –