Код родительской активности выполняется, но результат (анимация) не отображается
Я хочу, чтобы в моем приложении было скользящее меню, которое будет доступно для любого действия в моем приложении. Для этого я создал родительское действие, на которое распространяются все остальные действия, как предлагается вэтот ответ, Таким образом, только одно действие будет реализовывать эту функциональность скользящего меню, а все другие действия, расширяющие это действие, будут иметь такую реализацию. Но моя проблема в том, что когда я нажимаю кнопку ВВЕРХ (значок приложения), должен появиться выдвижной ящик, и весь макет должен сместиться в правую сторону. Это хорошо работает для BaseActivity, но для действий, расширяющих этот класс, оно не работает. Ни ящик не отображается, ни макет не смещается вправо. Я попытался поместить тосты в соответствующий метод BaseActivity, тост показывается, но ящик не появляется. В чем может быть проблема?
Макет XML выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_root"
android:layout_width="wrap_content"
android:layout_height="fill_parent" >
<RelativeLayout
android:id="@+id/ll_lhs_menu"
android:layout_width="300dip"
android:layout_height="fill_parent"
android:background="@color/menu_bg"
android:orientation="vertical"
android:visibility="visible" >
.......
Sliding drawer goes here.
.......
</RelativeLayout>
<!-- Following is the actual layout where in the layout for other activities
will be put in using the java code below. -->
<RelativeLayout
android:id="@+id/rl_right"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:background="@drawable/capture_port"
android:scrollbars="none" >
</RelativeLayout>
</RelativeLayout>
И переопределеноsetContentView()
Метод заключается в следующем:
@Override
public void setContentView(int layoutResID) {
_completeLayout= (RelativeLayout) getLayoutInflater().inflate(R.layout.menu, null);
_activityLayout= (RelativeLayout) _completeLayout.findViewById(R.id.rl_right);
getLayoutInflater().inflate(layoutResID, _activityLayout, true);
setContentView(_completeLayout);
}
При нажатии кнопки ВВЕРХ на панели действий, следующий код выполняется вBaseActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
_leftLayout.setVisibility(View.VISIBLE);
int width = _leftLayout.getWidth();
if (width == 0) {
width = 300;
}
if (!isMenuVisible()) {
Toast.makeText(this, "Executed successfully...", Toast.LENGTH_LONG).show();
_leftLayout.setVisibility(View.VISIBLE);
_rightLayoutParams = new LayoutParams(
_rightLayout.getWidth(), _rightLayout.getHeight());
_rightLayoutParams.setMargins(width, 0, -width, 0);
_rightLayout.setLayoutParams(_rightLayoutParams);
Animation slideRight = setRightSlidingAnimation();
_leftLayout.startAnimation(slideRight);
_rightLayout.startAnimation(slideRight);
} else {
Animation slideLeft = setLeftSlidingAnimation();
_rightLayout.startAnimation(slideLeft);
_leftLayout.startAnimation(slideLeft);
}
setMenuVisible(!isMenuVisible());
break;
}
return false;
}