gpt4 book ai didi

wear-os - 如何复制 "Start"菜单中的 ListView

转载 作者:行者123 更新时间:2023-12-04 14:44:43 27 4
gpt4 key购买 nike

我想实现一个 ListView ,如下所示。 enter image description here

显然这是一个带有 CircledImageView 的 WearableListView。但是我似乎无法找到哪个函数可以让我确定中间 View 。我还希望能够在新的动画上做“放大”动画,在旧的选定动画上做“缩小”动画......现在我尝试了一个基本的滚动但没有雪茄。

     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);
}

});

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

编辑 2 好的,现在我可以修改选定的 View 。但是,在取消选择对象后,仍然不知道如何正确删除属性。

最佳答案

诀窍是在 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);
}
}

完整的工作示例 source code here .

关于wear-os - 如何复制 "Start"菜单中的 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24617069/

27 4 0