gpt4 book ai didi

google-glass - 在 CardScrollView 中使用自定义卡片?

转载 作者:行者123 更新时间:2023-12-02 04:40:07 26 4
gpt4 key购买 nike

我正在使用 CardScrollView 在沉浸式应用中展示一堆内容,我不想使用标准的 Card,因为我想要更多控制布局。

我有一个定义我想要的布局的 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”的 subview 。我已经尝试了上面代码的一些变体,但我无法找到获取和设置这些元素的正确方法,然后将它们作为“CardScrollAdapter”的单个对象粘贴在列表中。我敢肯定这应该是非常简单的,但我不知道我错过了什么。

再次感谢!

最佳答案

在不知道您的 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 中扩充和填充布局,而不是预先扩充它们。这样,只有用户当前正在查看的 View 在内存中(每侧都有一对,以使滚动速度更快),但其余部分在需要时才会加载,以便更好地节省资源。

关于google-glass - 在 CardScrollView 中使用自定义卡片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21011873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com