我想实现一个列表视图,如下所示. 
显然,这是一个带有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现在我可以修改所选视图.仍然不知道在取消选择对象后正确删除属性的热点.
诀窍是在 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)
完整的工作示例源代码在这里。
| 归档时间: |
|
| 查看次数: |
3145 次 |
| 最近记录: |