O código da atividade pai sendo executado, mas o resultado (animação) não está aparecendo
Eu quero ter um menu deslizante em toda a minha aplicação, que será acessível para todas as atividades na minha aplicação. Para isso, criei uma atividade pai para a qual todas as outras atividades se estendem como sugerido emesta resposta. Assim, apenas uma atividade implementará essa funcionalidade de menu deslizante e todas as outras atividades que estenderem essa atividade terão essa implementação. Mas meu problema é que, quando pressiono o botão UP (ícone do aplicativo), a gaveta deslizante deve aparecer e todo o layout deve se deslocar para o lado direito. Isso funciona bem para o BaseActivity, mas para as atividades que estendem essa classe, não está funcionando. Nem a gaveta está sendo mostrada, nem o layout está mudando para a direita. Eu tentei colocar torradas no método apropriado da BaseActivity, o Toast está sendo mostrado, mas a gaveta não está aparecendo. Qual pode ser o problema?
O layout xml é o seguinte,
<?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>
E o substituídosetContentView()
método é o seguinte:
@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);
}
Ao clicar no botão UP na barra de ação, o código a seguir é executado emBaseActivity
@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;
}