弹出菜单展开/折叠从操作栏上的图标 [英] popup menu expand/collapse from an icon in Action Bar

查看:452
本文介绍了弹出菜单展开/折叠从操作栏上的图标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发的Andr​​oid 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

这篇关于弹出菜单展开/折叠从操作栏上的图标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆