tags:

views:

977

answers:

1

Hi

Im trying to change the icon on the handle when i try to open the slidingdrawer. When I extract the handle from the view and sets the onclicklistener or ontouchlistener it seems to never get trigget.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    SlidingDrawer drawer = (SlidingDrawer)findViewById(R.id.drawer_landscape);

    ImageView handle = (ImageView)findViewById(R.id.handle_l);
    handle.setFocusable(true);

    handle.setOnClickListener(new OnClickListener(){


  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   Log.i("test","onClick");
  }

    });


}

And my XML

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:id="@+id/base_frame_layout"
     android:layout_gravity="bottom"
     >        
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
     <TextView  
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:text="@string/hello"
         />
    </LinearLayout>

     <SlidingDrawer
          android:id="@+id/drawer_landscape"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:handle="@+id/handle_l"
          android:content="@+id/content"
          android:orientation="vertical"
          android:visibility="visible"
     >

      <ImageView
             android:id="@+id/handle_l"
              android:layout_height="50px"
             android:layout_width="64px"
             android:padding="0px"
             android:src="@drawable/icon"
         />

      <TextView
          android:id="@+id/content" 
             android:text="content" 
              android:layout_height="50px"
             android:layout_width="64px"
      />                 

      </SlidingDrawer>  

</FrameLayout>

I was hoping this code should log "onClick" message, but it doesn't.

Any ideas?

+2  A: 

I found it, it was pritty easy... I just need to setOnDrawerScrollListener on my drawer.

than implement the 2 methods onScrollEnded and onScrollStarted.

    mSlidingDrawer.setOnDrawerScrollListener(new OnDrawerScrollListener(){

  @Override
  public void onScrollEnded() {
   // TODO Auto-generated method stub
   Log.i("ddd","onScrollEnded slider");
   slider_animation.reverseTransition(HANDLE_ANIMATION_SPEED);
  }

  @Override
  public void onScrollStarted() {
   // TODO Auto-generated method stub
   Log.i("ddd","onScrollStarted slider");
   slider_animation.startTransition(HANDLE_ANIMATION_SPEED);
  }

});

I rather use an animation on the handle instead of changing the Image bacause of the flickering.

PHP_Jedi