gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:37:39 25 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 的子类,该子类采用以下 View 列表它的构造函数,然后在 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 位于内存中(每侧都有几个 View ,以使滚动速度更快),但其余部分在需要时才会加载,以便更好地节省资源。

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

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