gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:37 27 4
gpt4 key购买 nike

当我尝试打开滑动抽屉时,我试图更改 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com