在CardScrollView中使用自定义卡?

时间:2014-01-09 04:56:31

标签: google-glass google-gdk

我正在使用CardScrollView在沉浸式应用中展示一堆内容,我不想使用标准Card,因为我希望更多地控制布局。< / p>

我有一个xml布局文件,它定义了我想要的布局,但是我无法弄清楚如何在代码中创建这个布局的本地实例,以便我可以获取/设置其组件并将它们添加到我的卡中滚动适配器列表。

有没有人这样做,或知道我在哪里可以找到示例或教程或其他什么?

谢谢!

这是我到目前为止尝试过的代码(它在一个Activity的onCreate方法中)

setContentView(R.layout.activity_menu_top);

viewCards = new ArrayList<RelativeLayout>();
TextView tv;

RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout_menutop);

tv = (TextView) layout.findViewById(R.id.textSectionTitle);
tv.setText("Appetizers");
tv = (TextView) layout.findViewById(R.id.textPreviousItem);
tv.setText("");
tv = (TextView) layout.findViewById(R.id.textNextItem);
tv.setText("Entress >");
viewCards.add(layout);

   //repeat that last chunk a bunch of times

menuCSV = new CardScrollView(this);
menuCSV.setOnItemClickListener(this);
adapter = new MenuCardScrollAdapter();
menuCSV.setAdapter(adapter);
menuCSV.activate();

setContentView(menuCSV);

我正在引用的'TextView'ID是我在布局xml中定义的'RelativeLayout'的子视图。我在上面的代码中尝试了一些变化,我无法找出获取和设置这些元素的正确方法,然后将它们作为'CardScrollAdapter'的单个对象粘贴在List中。我敢肯定这应该是非常简单但我无法弄清楚我错过了什么。

再次感谢!

1 个答案:

答案 0 :(得分:5)

不知道你的CardScrollAdapter是什么样子,一般的想法是做这样的事情:你可以创建一个CardScrollAdapter的子类,在其构造函数中获取一个视图列表,然后你返回getView内的相应内容:

private class YourCardScrollAdapter extends CardScrollAdapter {

    private List<RelativeLayout> mViews;

    public YourCardScrollAdapter(List<RelativeLayout> views) {
        mViews = views;
    }

    // ...other methods...

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return mViews.get(position);
    }
}

如果您使用少量固定卡(例如,如果您使用带有固定选项的菜单的滚动条),则此方法很好。如果您使用的动态卡片的内容和数量可能因其他因素而异,您可能需要考虑在getView内填充和填充布局,而不是预先对其进行预膨胀。这样,只有用户当前正在查看的视图位于内存中(并且每侧都有一对,以便更快地滚动),但是在需要之前不会加载其余视图以便更好地保存资源。 / p>