Я пытаюсь реализовать меню слайдера так же, как приложение facebook для Android.
Мне удалось сдвинуть меню и снова сдвинуть его обратно.
У меня есть два представления, подходящие для макета кадра.
1. Основной макет (X)
2. Макет меню. (Y)
Я сдвигаю X вправо, что показывает Y при скольжении, а при скольжении назад я перемещаю X обратно на 0, что скрывает меню.
@Override
public void setContentView(int layout) {
FrameLayout frame = new FrameLayout(getBaseContext());
frame.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.FILL_PARENT));
LayoutInflater inflator = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mainLayout = inflator.inflate(layout, null);
menuList = inflator.inflate(R.layout.menu_page, null);
fakeView= inflator.inflate(R.layout.fake_transparent_view, null);
menuAnimator = new MenuAnimation(mainLayout,menuList,fakeView);
frame.addView(menuList);
frame.addView(mainLayout);
frame.addView(fakeView);
fakeView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(mainLayout.getLeft()>0)
{
menuAnimator.moveMenu("left");
}
}
});
super.setContentView(frame);
}
public void moveMenu(String direction) {
int width=(int) (QuikrApplication.getWidth()*.85);
if (direction.equals("right")) {
this.direction="right";
fakeView.setVisibility(View.VISIBLE);
TranslateAnimation moveRight = new TranslateAnimation(0, width, 0, 0);
moveRight.setDuration(500);
parentLayout.setAnimation(moveRight);
moveRight.setAnimationListener(animationListner);
parentLayout.startAnimation(moveRight);
fakeView.startAnimation(moveRight);
}
else if (direction.equals("left")){
this.direction="left";
TranslateAnimation moveLeft = new TranslateAnimation(0, -width, 0, 0);
moveLeft.setDuration(500);
parentLayout.setAnimation(moveLeft);
moveLeft.setAnimationListener(animationListner);
parentLayout.startAnimation(moveLeft);
fakeView.startAnimation(moveLeft);
}
}
Теперь проблема в том, что когда я выполняю какое-то действие в основном представлении, асинхронно основное представление перемещается (когда меню видно)