答案 0 :(得分:2)
LL应在圆顶上包含一个空格,高度为" 0dp"。收到数据时,应将空间的权重属性设置为 100-(received_percentage)。记得将LL的weight_sum设置为100。
答案 1 :(得分:2)
试试这段代码:
mContainerView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mContainerView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
// Start animation here so getHeight won't return 0
int maxTranslateDistance = mContainerView.getHeight() - mCircleView.getHeight();
float percent = 1; // Within 0 - 1
mCircleView.animate().translationY((int)(maxTranslateDistance * percent)).setDuration(0).start();
}
});
mContainerView
是您的容器LinearLayout
,mCircleView
是圆圈视图。您可以通过高度计算最大距离,乘以百分比(0 - 1)得到最终距离。
如果在屏幕上完全绘制完布局后启动动画,则可以删除getViewTreeObserver().addOnGlobalLayoutListener
部分。