I've faced serious problem, which I couldn't solve for hours. I have host activity with relativeLayout header and frameLayout below it for fragment. [RelativeLayout] [FrameLayout
]. I need to hide relative layout when keyboard appears, and show it when it hides with animation. I solved that problem in that way:
ValueAnimator animator = ValueAnimator.ofFloat(1.0f, 0.0f);
animator.setDuration(250);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int offset = (int) (mHeaderLayout.getHeight());
float value = (Float) valueAnimator.getAnimatedValue();
LinearLayout.LayoutParams headerParams = (LinearLayout.LayoutParams) mHeaderLayout
.getLayoutParams();
LinearLayout.LayoutParams fragmentParams = (LinearLayout.LayoutParams) mFragmentLayout
.getLayoutParams();
headerParams.setMargins(0, (int) (-1 * value * offset), 0,
(int) (value * offset));
fragmentParams.setMargins(0, (int) (-1 * value * offset), 0,
(int) (value * offset));
mHeaderLayout.setLayoutParams(headerParams);
mFragmentLayout.setLayoutParams(fragmentParams);
}
});
animator.start();
But I've faced the problem, when keyboard appears, there is extra space which I need to fill,(height of RelativeLayout) due to moving layout.
Aucun commentaire:
Enregistrer un commentaire