Raj*_*ran 5 android facebook margin android-animation android-layout
我想在我的应用程序中使用facebook菜单.这里有许多线程,所有这些都建议使用一个库,它实际上只是截取屏幕截图并将图像向右滑动,以便在左侧显示菜单并在一些过渡时滑动图像.但在这种情况下,右侧的布局因其图像而无法点击.
但我还有另一种方法,我有一个根布局已经有菜单布局和内容布局.但根布局在左侧设置了一些负边距,因此不可见.像这样-

当用户按下菜单按钮时,菜单布局向右滑动,根布局的左边距设置为0.所以现在我们看到的是 -

现在,真正的问题从这里开始
我想用一些动画来滑动两个布局.因此,当我为菜单布局和内容布局设置动画时,即使我对其应用相同的动画,两个布局的动画也不会达到相同的速度.所以我尝试通过设置边距来向右/左移动ROOT LAYOUT.但是这样做就没有在屏幕上显示.我哪里错了.我设定保证金的方式如下所示 -
int width = leftLayout.getWidth();
isLayoutShown = !isLayoutShown;
if(isLayoutShown){
rootLayoutParams.setMargins(0, 0, 0, 0);
rootLayout.setLayoutParams(rootLayoutParams);
}else{
rootLayoutParams.setMargins(-width, 0, 0, 0);
rootLayout.setLayoutParams(rootLayoutParams);
}
Run Code Online (Sandbox Code Playgroud)
终于我能做到了。这是当我单击左上角的菜单按钮时使用的代码:
@Override
public void onClick(View v) {
rootLayoutParams = new LayoutParams(rightLayout.getWidth(),
rightLayout.getHeight());
if (lhsMenu.getVisibility() == View.GONE) {
lhsMenu.setVisibility(View.VISIBLE);
Animation slideRight = setRightSlidingAnimation();
rightLayout.setAnimation(slideRight);
lhsMenu.setAnimation(slideRight);
} else {
Animation slideLeft = setLeftSlidingAnimation();
rightLayout.setAnimation(slideLeft);
lhsMenu.setAnimation(slideLeft);
lhsMenu.setVisibility(View.GONE);
}
}
Run Code Online (Sandbox Code Playgroud)
更新:还要设置左右边距(如果需要),rightLayout以便 rightLayout 不会缩小。
_rightLayoutParams.setMargins(width, 0, -width, 0);
就width = 200我而言。
| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |