答案 0 :(得分:3)
首先,您需要使用 WearableRecyclerView 替换ListView。
它可以像普通的ListView一样使用。但请确保您从android.support.wear.widget
导入正确的。 请勿使用 android.support.wearable.view
中的。这个应该被划掉,所以你不会花很长时间来检查你是否正在使用正确的。如果只有一个WearableRecyclerView可供选择,请确保将compile 'com.android.support:wear:27.0.0'
添加到 build.gradle (穿戴)文件中的依赖项。
另外,请确保您在 activity.xml 中使用<android.support.wear.widget.WearableRecyclerView/>
。如果您只想要一个没有任何自定义项目缩放的循环ListView,只需在onLayoutInflated()
方法中调用它:
your_recyclerview.setEdgeItemsCenteringEnabled(true);
your_recyclerview.setLayoutManager(new WearableLinearLayoutManager(your_activity_context));
如果你想让物品靠近屏幕中心时放大,事情就会变得复杂一点。
首先:将它粘贴到Activity.java中:
private class CustomScrollingLayoutCallback extends WearableLinearLayoutManager.LayoutCallback {
private static final float MAX_ICON_PROGRESS = 2F;
@Override
public void onLayoutFinished(View child, RecyclerView parent) {
float centerOffset = ((float) child.getHeight() / 2.0f) / (float) parent.getHeight();
float yRelativeToCenterOffset = (child.getY() / parent.getHeight()) + centerOffset;
float progresstoCenter = (float) Math.sin(yRelativeToCenterOffset * Math.PI);
float mProgressToCenter = Math.abs(0.5f - yRelativeToCenterOffset);
mProgressToCenter = Math.min(mProgressToCenter, MAX_ICON_PROGRESS);
child.setScaleX(1 - mProgressToCenter);
child.setScaleY(1 - mProgressToCenter);
child.setX(+(1 - progresstoCenter) * 100);
}
}
然后返回 onLayoutInflated()方法,并输入以下内容:
CustomScrollingLayoutCallback customScrollingLayoutCallback = new CustomScrollingLayoutCallback();
your_recycler_view.setLayoutManager(new WearableLinearLayoutManager(your_context, customScrollingLayoutCallback));
your_recycler_view.setCircularScrollingGestureEnabled(true);
进行。
答案 1 :(得分:1)
Android Wear 2.0&#39; WearableRecyclerView
现在可以实现这一点。
Wear 2.0引入了
WearableRecyclerView
类来显示和 操纵为圆形显示优化的项目的垂直列表。WearableRecyclerView
将现有的RecyclerView
类扩展为 在可穿戴设备中提供弯曲布局和圆形滚动手势 应用
您可能希望详细了解Android Wear 2.0 Preview 3。