如何复制listview,如"开始"菜单中所示

Mic*_*ael 6 wear-os

我想实现一个列表视图,如下所示. 在此输入图像描述

显然,这是一个带有CircledImageView的WearableListView.但是我似乎无法找到哪个功能允许我确定中间视图.我也希望能够在新的动画上进行"尺寸增大"动画,并在旧版本上进行"尺寸缩小"...现在我尝试了一个基本的滚动但没有雪茄.

     mListView.addOnScrollListener(new WearableListView.OnScrollListener() {
                @Override
                public void onScroll(int i) {
                    Log.d("Recycler","Scroll: "+i);
                }

                @Override
                public void onAbsoluteScrollChange(int i) {
                    Log.d("Recycler","ABsScrollChange: "+i);
                }

                @Override
                public void onScrollStateChanged(int i) {
                    Log.d("Recycler","ScrollState: "+i);
                }


                @Override
                public void onCentralPositionChanged(int i) {
                    Log.d("Recycler","Center: "+i);
                }

            });
Run Code Online (Sandbox Code Playgroud)

编辑:好的,我现在知道如何找到中心视图.但我想知道是否有人想出如何检索当前视图,以便我可以修改当前选定的视图.

编辑2现在我可以修改所选视图.仍然不知道在取消选择对象后正确删除属性的热点.

Pet*_*ese 4

诀窍是在 WearableListView.Item 子类中实现 getProximityMinValue() 和 getProximityMaxValue() :

private final class MyItemView extends FrameLayout implements WearableListView.Item {

  final CircledImageView image;
  final TextView text;

  public MyItemView(Context context) {
    super(context);
    View.inflate(context, R.layout.wearablelistview_item, this);
    image = (CircledImageView) findViewById(R.id.image);
    text = (TextView) findViewById(R.id.text);
  }

  @Override
  public float getProximityMinValue() {
    return mDefaultCircleRadius;
  }

  @Override
  public float getProximityMaxValue() {
    return mSelectedCircleRadius;
  }

  @Override
  public float getCurrentProximityValue() {
    return image.getCircleRadius();
  }

  @Override
  public void setScalingAnimatorValue(float value) {
    image.setCircleRadius(value);
    image.setCircleRadiusPressed(value);
  }

  @Override
  public void onScaleUpStart() {
    image.setAlpha(1f);
    text.setAlpha(1f);
  }

  @Override
  public void onScaleDownStart() {
    image.setAlpha(0.5f);
    text.setAlpha(0.5f);
  }
}
Run Code Online (Sandbox Code Playgroud)

完整的工作示例源代码在这里