アプリケーションにFacebookのようなメニューが必要です。これには多くのスレッドがあり、それらはすべて、実際に画面のスクリーンショットを撮り、その画像を右にスライドさせて左側にメニューを表示し、画像をスライドさせてトランジションを設定するライブラリを使用することを提案しています。ただし、その場合、右側のレイアウトは画像であるためクリックできません。
しかし、メニューレイアウトとコンテンツレイアウトがすでにあるルートレイアウトを使用する別の方法があります。ただし、ルートレイアウトは左に向かって負のマージンが設定されているため、表示されません。このような-
ユーザーがメニューボタンを押すと、メニューレイアウトが右にスライドし、ルートレイアウトの左マージンが0に設定されます。これで、次のように表示されます。
さて、本当の問題はここから始まります
両方のレイアウトをアニメーションでスライドさせたいです。そのため、メニューレイアウトとコンテンツレイアウトをアニメーション化すると、同じアニメーションを適用しても、両方のレイアウトのアニメーションの速度が同じになりません。そこで、マージンを設定して、ROOTLAYOUTを右/左にのみシフトしようとしました。ただし、そうすると、画面に何も表示されません。私はどこが間違っているのですか。マージンを設定する方法をここに示します-
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);
}