当用户从一张卡移动到另一张卡时,CardScrollView或CardScrollAdapter有没有办法让我知道
最初,我使用GestureDetector来检测左或右的刷卡,但在玻璃应用程序中,用户可以使用双指刷卡来快速移动并移动到远程卡(甚至语音控制)。
必须有更好的方法来准确地知道何时显示一个新的卡片,而不是跟踪所有这些定向事件。
我知道CardScrollView.getSelectedItemPosition()给了我当前的卡视图,但不完全是什么时候显示一个新的卡。
我还认为CardScrollAdapter.getView()每次显示新卡时都会运行,但在Glass中,它在活动执行开始时只运行一次。
任何帮助都会很好。
发布于 2015-07-17 15:36:25
解决方案实际上在@EntryLevelDev所建议的文档中。
CardScrollView使用从AdapterView继承的下列侦听器接口通知您: AdapterView.OnItemSelectedListener -在用户完成对列表的滚动并对项目进行设置后选择项目。
发布于 2015-07-17 01:23:50
我的眼镜就在我的储藏室里,所以我现在不能测试这个,但是你可以试试onDetachedToWindow和onAttachedToWindow。可能是这样的:
private View buildView() {
CardBuilder card = new CardBuilder(this, CardBuilder.Layout.TEXT);
card.setText(R.string.whatever);
View view = card.getView();
view.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
@Override
public void onViewAttachedToWindow(View v) {
}
@Override
public void onViewDetachedFromWindow(View v) {
}
});
return view;
}另外,卡片生命周期可能会给你一些想法。
https://stackoverflow.com/questions/31464410
复制相似问题