Android Facebook lide滑出菜单(不使用该库)

Android Facebook lide滑出菜单(不使用该库),android,facebook,android-layout,margin,android-animation,Android,Facebook,Android Layout,Margin,Android Animation,我想在我的应用程序中有类似facebook的菜单。这方面有很多线索,它们都建议使用一个库,它实际上只是截取屏幕的屏幕截图并向右滑动该图像,以便在左侧显示菜单,并通过一些过渡来滑动图像。但在这种情况下,右边的布局是不可点击的,因为它是一个图像 但是我有另一种方法,我有一个根布局,它已经有菜单布局和内容布局。但根布局设置为向左一些负边距,因此不可见。像这样- 当用户按下菜单按钮时,菜单布局向右滑动,根布局的左边距设置为0。现在我们看到的是- 现在,真正的问题从这里开始 我想用一些动画来滑动这两个

我想在我的应用程序中有类似facebook的菜单。这方面有很多线索,它们都建议使用一个库,它实际上只是截取屏幕的屏幕截图并向右滑动该图像,以便在左侧显示菜单,并通过一些过渡来滑动图像。但在这种情况下,右边的布局是不可点击的,因为它是一个图像

但是我有另一种方法,我有一个根布局,它已经有菜单布局和内容布局。但根布局设置为向左一些负边距,因此不可见。像这样-

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

现在,真正的问题从这里开始

我想用一些动画来滑动这两个布局。因此,当我设置菜单布局和内容布局的动画时,两个布局的动画速度并不相同,即使我对其应用了相同的动画。因此,我试图通过设置边距来将根布局向右/左移动。但这样做时,屏幕上不会显示任何内容。我哪里做错了。这里显示了我设置边距的方式-

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

我终于可以做到了。以下是我单击左上角的菜单按钮时使用的代码:

@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);
    }
}
更新:还将
rightLayout
的左边和右边(如果需要)设置边距,以便rightLayout不会收缩

\u rightLayoutParams.setMargins(宽度,0,-宽度,0)


在我的例子中,
width=200

你运气好吗?是的,问题以某种方式解决了。请检查下面的答案。你可能想看看这个问题的答案:你能发布完整的项目代码库吗?