我正在开发的Android 2.1 API 7的应用程序。我实现了我与操作栏 ActionbarSherlock 库。
I am developing Android 2.1 API 7 app. I implement my Action Bar with ActionbarSherlock library.
我的操作栏查看:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/my_option"
android:layout_gravity="left"
android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
</LinearLayout>
在我的活动的onCreate()
回调:
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
ActionBar actionBar = getSupportActionBar();
View actionBarView = getLayoutInflater().inflate(R.layout.action_bar, null);
actionBar.setCustomView(actionBarView);
ImageView actionBarImg = (ImageView) actionBarView.findViewById(R.id.my_option);
actionBarImg.setOnClickListener(new OnClickListener(){
public void onClick(View view) {
//how to pop up a menu which is expand/collapse below the image icon
}
});
}
正如你看到的上面,有操作栏上的布局的图像图标( actionBarImg
)。
我想实现的是,当用户手指preSS图像图标,弹出菜单将扩大在图标的下方,当preSS图标再次,弹出菜单折叠功能。如何实现这一点?
I would like to implement the feature that, when user finger press the image icon, a popup menu will expand below the icon, when press icon again, the popup menu collapses. How to implement this?
在您的ImageView onClickListener创建这个popupWindow,并把它在ImageView的
in your imageView onClickListener create this popupWindow and put it under the imageView
actionBarImg.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.cart_layout, null);
PopupWindow pw = new PopupWindow(layout , LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT, true);
// display the popup in the center
pw.setOutsideTouchable(true);
pw.setBackgroundDrawable(new ColorDrawable(android.R.color.transparent));
pw.setFocusable(true);
pw.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("touch ", "touch");
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
Log.i("touch outside", "touch outside");
pw.dismiss();
return true;
}
return false;
}
});
pw.showAsDropDown(v);
}
});
这将会把在你的ImageView /按钮,您popupWindow
this will place your popupWindow under your imageView/button