我有一个ListView,当通过onItemClick侦听器单击项目行时,它会打开另一个活动.
我希望该行从点击时到屏幕切换到新活动时保持按下状态.我认为这对用户来说是一个更清晰的体验,你会看到这种事情,大多数按钮打开/关闭对话框或切换活动.
我尝试在onItemClick()监听器中设置view.setPressed(true),但似乎在按下状态变回正常状态后调用了一会儿,因为它略微闪烁.
例如:
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
view.setPressed(true);
//start an activity
}
});
Run Code Online (Sandbox Code Playgroud)
除了闪烁之外,该代码几乎可以工作(用户按下列表项并转到其按下状态,然后用户放开(完成点击),然后返回到正常状态一瞬间,然后返回到按下状态来自setPressed(true)调用)
有任何想法吗?
谢谢
编辑:我应该提到我使用xml drawable选择器来定义列表背景的正常,按下,选择等状态.
在我的骨干.Marionette应用程序我有一个模型,需要一个Id属性来构建它的URL.因此,我通过传递一个Id来创建模型,将其添加到视图中然后获取模型:
model = new Model({_id:id})
view = new View({model:model})
app.content.show(view)
model.fetch()
Run Code Online (Sandbox Code Playgroud)
我希望视图只在获取模型后才开始渲染,但Marionette会立即渲染模型,导致我的模板渲染失败,因为预期的属性不存在.任何解决方法?
我正在尝试做一些类似于接受的答案:将 一个Backbone模型绑定到Marionette ItemView - 阻止.fetch()?
但是,虽然这与骨干有关,但正如答案中所述,Marionette会自动呈现视图.
我有一个名为Target.qml. 我想使用Qt.createQmlObject().
它在使用内置 qml 对象(如 Image)时有效:
var newTarget = Qt.createQmlObject('import Qt 4.7; Image {source: "widgets/SlideSwitchImages/knob.png"; }', parent);
Run Code Online (Sandbox Code Playgroud)
但是在使用任何自定义对象类型时失败,例如:
var newTarget = Qt.createQmlObject('import Qt 4.7; Target {}', parent);
Run Code Online (Sandbox Code Playgroud)
但是,如果我在 QML 中静态使用我的自定义 Target 类型,则一切正常。这是一个已知的限制,有什么解决方法吗?