我希望在我的应用程序中拥有类似Facebook的菜单。有许多关于此的线程,所有这些线程都建议使用一个库,该库实际上只是对屏幕截图,并将该图像向右滑动以显示左侧的菜单并具有某些过渡效果。但在这种情况下,右侧的布局不可点击,因为它是图像。
但我有一种另一种方法可以做到这一点,即我有一个根布局,其中已经设置了菜单布局和内容布局。但是根布局被设置为向左一些负边距,因此看不到它。就像这样-
当用户按下菜单按钮时,菜单布局向右滑动,根布局的左边距设置为0。所以现在我们看到的是这样的-
现在,真正的问题出现了 我想使用某些动画来同时滑动这两个布局。因此,当我对菜单布局和内容布局进行动画处理时,即使我对两个布局应用相同的动画,两个布局的动画速度也不同。因此,我尝试只移动根布局,将其向右/左设置边距。但这样做屏幕上什么也没有显示。我错在哪里?设置边距的方法如下-
但我有一种另一种方法可以做到这一点,即我有一个根布局,其中已经设置了菜单布局和内容布局。但是根布局被设置为向左一些负边距,因此看不到它。就像这样-
当用户按下菜单按钮时,菜单布局向右滑动,根布局的左边距设置为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);
}