列表视图行不显示在 Glass 实时卡片中



我正在尝试为使用ListView显示列表的Glass构建一个活动卡。用谷歌眼镜的话说,这是一个高频的实时卡。我试过使用一个普通的ListView以及那些从这里的例子。我也尝试过使用ArrayAdapterSimpleAdapter,但在每种情况下,当卡被渲染时,没有数据出现。

我需要做什么更改才能显示列表项?

我的实时卡片渲染器有一个draw()方法在一个固定的间隔被调用,它包含以下内容:

Canvas canvas;
try {
  canvas = mHolder.lockCanvas();
} catch (Exception e) {
  return;
}
if (canvas != null) {
  string[] from = new String[] {"col1", "col2"};
  List<Map<String, String>> fillMaps = new ArrayList<Map<String, String>>();
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, R.layout.grid_item, from);
  mScroll.setAdapter(adapter);
  mLayout.invalidate();
  mLayout.draw(canvas);
  canvas.save();
  mHolder.unlockCanvasAndPost(canvas);
}

我的视图是一个LinearLayout,其中包含一个ListView:

<ListView
  android:id="@+id/orders_list"
  android:layout_width="fill_parent"
  android:layout_height="350dp"
  android:layout_marginLeft="5dp"
  android:background="@android:color/holo_blue_light"
  android:divider="@null"
  android:listSelector="@android:color/transparent" />

,每一行的布局定义为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal" >
  <TextView
    android:id="@android:id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:maxLines="1"
    android:textSize="30sp"/>
</LinearLayout>

我已经成功地在Activity中显示了ListView,然后显示了该活动,但这不是我想在这种情况下做的。我也尝试过使用"低频"渲染方法创建活卡(使用RemoteView),但再次,没有显示。在这个例子中,你得到的只是一个蓝色的框(我已经将背景颜色设置为ListView,这样我就可以看到它占据了视图的哪个区域)。

我的问题是:是否有一个bug在玻璃渲染框架,这是阻止数据行被显示?如果不是,上面的例子有什么问题?是否有任何包含列表的卡片的例子可供我参考?

将此标记为已回答,因为它将在稍后的玻璃更新中解决。

最新更新