android - 单击时如何更改 SlidingDrawer handle 上的图标

标签 android slider

当我尝试打开滑动抽屉时,我试图更改 handle 上的图标。 当我从 View 中提取句柄并设置 onclicklistener 或 ontouchlistener 时,它似乎永远不会触发。

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");
        }

    });


}

还有我的 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>

我希望这段代码应该记录“onClick”消息,但事实并非如此。

有什么想法吗?

最佳答案

我找到了,非常简单...我只需要在我的抽屉上设置 setOnDrawerScrollListener。

然后实现 onScrollEnded 和 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);
        }

});

我宁愿在 handle 上使用动画而不是更改图像,因为闪烁。

关于android - 单击时如何更改 SlidingDrawer handle 上的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1163812/

相关文章:

javascript - 如何使用 CSS 创建 slider ?

javascript - 根据 JQueryUI slider 的值检查单选按钮

android - 谷歌安卓市场搜索结果

java - fragment 中的 ImageView 未显示

java - fragment 到 Activity 通信

ios - 动画 UIView 向下滑动,然后向上滑动

events - JavaFX 2.2 : Hooking Slider Drag n Drop Events

jquery - 如何使用 jQuery 让我的图像淡入淡出

android - float 操作按钮未出现在 kitkat 中

android - 房间更新不更新数据库