在CardScrollAdapter(link)的官方GDK文档中,它声明您可以覆盖public int getHomePosition()
以使适配器定义新的“起始”位置(aka:显示/激活父CardScrollView时最初显示的视图)。问题是...我尝试执行此操作,但是适配器似乎未调用public int getHomePosition()
。
这是一个简化的示例...
public abstract class StackOverflowExample extends CardScrollAdapter
{
private Context m_context = null;
public StackOverflowExample(Context context)
{
super();
m_context = context;
}
@Override public final int getCount()
{
return 3;
}
@Override public int getHomePosition()
{
return 1;
}
// Other misc adapter overrides here...
@Override public View getView(int position, View view, ViewGroup parent)
{
Card glassCard = new Card(m_context);
glassCard.setText("Position: " + position);
return glassCard.getView(view, parent);
}
}
当我初始化该适配器并将其分配给CardScrollView然后对其
activate()
进行分配时,显示的第一张卡为“位置:0”。我的问题是,我是否错误地使用了
getHomePosition()
还是在最新的Glass Development Kit Preview版本中无法正常使用? 最佳答案
我实际上并没有使用getHomePosition()
,但是在设置内容视图之后,我已经通过使用mCardScrollView.setSelection(homePosition)
获得了与您描述的功能相同的功能。如果您现在还没有开始工作,这可能会有所帮助。
编辑:浏览了文档后,我认为它们的意思是像这样使用覆盖函数:
mCardScrollView.setSelection(getHomePosition())
否则,将其称为
setHomePosition()
更有意义