Ok so here is the deal... I have a menu at the bottom of my apps
screen that works normally hits/clicks register fine.

When you select the "hide menu" button which is an arrow image the
animation works fine and the menu and the hide menu button move down
as they should, here is where it gets weird, The "hit area" or "click
area" whatever you want to call it remains where in the original
location for both the menu and the "hide menu" button, If I click on
the "hide menu" button again (where it was prior to the animation,
nothing happens when I click on its current location) it returns to
the visible position (which I defined through a state holder variable
and a couple if statements) so the code seems to be functioning
normally except that the button clickable areas aren't moving... can
someone explain where I'm going wrong or what I need to do?

Here is some of the code:
[Snippet from Main Activity]
//Nav Button
        ImageButton NavDrawerBtn = (ImageButton)
findViewById(R.id.nav_drawer_btn);
        NavDrawerBtn.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                        //Toast.makeText(Dashboard.this, "Nav",
Toast.LENGTH_SHORT).show();
                        animateNavDrawerBtn();
                }
        });

 private void animateNavDrawerBtn(){
        ImageButton NavDrawerBtn = (ImageButton)
findViewById(R.id.nav_drawer_btn);
        ...
        View NavDrawer = (View) findViewById(R.id.nav_drawer);

        //State 1 = Bottom
        //State 2 = Middle
        //State 3 = Top
        //If State is 1 move to 2 and set to 2
        if (navState == 1){
                NavDrawerBtn.startAnimation(new
NavDrawerBtnAnimMid());
                NavDrawer.startAnimation(new NavDrawerAnimMid());
                navState = 2;
                return;

        //If State is 2 move to 1 and set to 1
        }
        if (navState == 2){
                NavDrawerBtn.startAnimation(new
NavDrawerBtnAnimBottom());
                NavDrawer.startAnimation(new NavDrawerAnimBottom());
                navState = 1;
                return;
        }
        //If State is 3 move to 2 and set to 2
        if (navState == 3){
                NavDrawerBtn.startAnimation(new
NavDrawerBtnAnimMid());
                navState = 2;
                return;
        }

    }

[Snippet from NavDrawerBtnAnim***/NavDrawerAnim*** Classes (only line
that is changes is the matrix.setTRamslate(xxx,xxx) line]
import android.graphics.Matrix;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.Transformation;

public class NavDrawerAnimBottom extends Animation{
        public void NavAnimation2(){}

        @Override
        public void initialize(int width, int height, int parentWidth,
int parentHeight){
 
super.initialize(width,height,parentWidth,parentHeight);
                setDuration(2500);
                setFillAfter(true);
                setInterpolator(new LinearInterpolator());
        }
        @Override
        protected void applyTransformation(float interpolatedTime,
Transformation t){
                final Matrix matrix = t.getMatrix();
                matrix.setTranslate(0, 125);
        }
}

This seems to be similar to what was described here:
http://www.mail-archive.com/android-developers@googlegroups.com/msg24588.html
As Romain Guy suggested I tried adding the requestLayout(); param like
this:

[Modified Code Snippet]
if (navState == 1){
                NavDrawerBtn.startAnimation(new NavDrawerBtnAnimMid());
                NavDrawer.startAnimation(new NavDrawerAnimMid());
                NavDrawerBtn.requestLayout();
                NavDrawer.requestLayout();
                navState = 2;
                return;
}
//If State is 2 move to 1 and set to 1
if (navState == 2){
                NavDrawerBtn.startAnimation(new NavDrawerBtnAnimBottom());
                NavDrawer.startAnimation(new NavDrawerAnimBottom());
                NavDrawer.setEnabled(false);
                NavDrawerBtn.requestLayout();
                NavDrawer.requestLayout();
                navState = 1;
                return;
        }

Which had no effect, any help would be greatly appreciated I'm lost
here... Thanks
Aaron Buckner

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to