是否可以在Android中从自定义视图禁用特定的XML属性?
我通过扩展是否可以在Android中从自定义视图禁用特定的XML属性?,android,listview,scrollbars,xml-attribute,custom-widgets,Android,Listview,Scrollbars,Xml Attribute,Custom Widgets,我通过扩展列表视图本身来创建自己的个性化列表视图。这个特定的ListView不应该有滚动条 如何禁用自定义列表视图的XMLandroid:scrollbars属性 我找不到通过编程禁用它们的方法。我错过了什么 dzeikei的答案将以编程方式禁用滚动条,并忽略android:scrollbars中的任何值,但我在1上真正要问的是什么。是如何使android:scrollbars成为自定义组件的无效属性。已更新 好的,正如Richardo所发现的,似乎我的原始答案是相反的,因为滚动条是在内部显示的
列表视图
本身来创建自己的个性化列表视图。这个特定的ListView不应该有滚动条
列表视图的XMLandroid:scrollbars
属性
super.setHorizontalScrollBarEnabled(false)
和super.setVerticalScrollBarEnabled(false)
并重写setHorizontalScrollBarEnabled()
和setVerticalScrollBarEnabled()
不执行任何操作:D
覆盖isHorizontalScrollBarEnabled()
和
isVerticalScrollBarEnabled()
在子类中返回false
您还可以覆盖setHorizontalScrollBarEnabled()
和
setVerticalScrollBarEnabled()
用于良好测量
尝试为android:scrollbars保留@null。我不确定。但是,当我想从XML属性中删除任何内容时,我通常使用@null。谢谢。但我的主要问题是关于问题标题指定的XML属性。我只想说清楚,我知道重写这些方法会奏效,但我想问的是,是否有办法使
android:scrollbars
对我的自定义组件无效。也许我应该在问题中澄清一下……我非常确定
的工作原理与方法声明类似,您不能取消声明子类中的某些内容。不过,欢迎你证明我错了:)我刚刚测试了你的建议,并重写了isHorizontalScrollBarEnabled()
和isVerticalScrollBarEnabled()
以返回false。没有做任何事情,滚动条仍然显示。实际上,我必须调用构造函数上的set
方法并将它们设置为false。但是为了防止它们被设置为true,我需要覆盖set
方法并始终将它们设置为false。请在您认为合适的时候更新您的答案。对不起,我想到了带有自定义适配器的普通ListView。