在android的cardlayout中添加溢出菜单项

时间:2014-12-12 04:42:15

标签: android menu cardlayout

您好我正在使用cardlayout视图创建小型Android应用程序。我已经创建了card.Now我想在我的cardlayout添加溢出菜单。我可以在卡片布局中添加溢出菜单的图像。但是如何点击它打开一些溢出菜单。需要一些帮助。谢谢。我不想使用任何库,因为我已经为我的卡创建了UI。只想添加溢出菜单。

2 个答案:

答案 0 :(得分:3)

尝试弹出菜单 ex。 http://www.javatpoint.com/android-popup-menu-example

PopupWindow ex。 http://android-er.blogspot.in/2012/03/example-of-using-popupwindow.html

ListPopupWindow ex。http://www.informit.com/articles/article.aspx?p=2078060&seqNum=4

所有这些都适合你。但Popup菜单很好,因为它的工作方式类似于android的选项菜单。

答案 1 :(得分:0)

好吧我刚刚得到那个项目:) 不知道这是不是最好的方式,但我做到了:p 我只是简单地在相同的布局中创建了一个listView,并将其可见性设置为“已消失”。

<LinearLayout
    android:id="@+id/spinnerlayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/linearLayout1"
    android:layout_below="@+id/ll_upper"
    android:layout_marginTop="15dp"
    android:orientation="vertical" 
    android:visibility="gone">

    <ListView
        android:id="@+id/lv_menu"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/ll_upper"
        android:visibility="visible" >
    </ListView>
</LinearLayout>

并为此 private String menuTitle [] = {“Facebook登录”,“关于”,“设置”};

然后我设置menuAdapter:

private class MenuAdapter extends BaseAdapter {

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return menuTitle.length;
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO Auto-generated method stub
        LayoutInflater inf = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        View v = inf.inflate(R.layout.item_menu, null);
        ((TextView) v.findViewById(R.id.tv_menuitem))
                .setText(menuTitle[arg0]);
        return v;
    }

}

最后捉迷藏;)

iv_menu.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // lv_menu.setVisibility(View.VISIBLE);
            // lv_menu.setCacheColorHint(color.transparent);
            if (flag) {
                list.setVisibility(View.VISIBLE);
                lv_menu.setAdapter(new MenuAdapter());
                flag = false;
            }
            else {

                list.setVisibility(View.GONE);
                lv_menu.setAdapter(new MenuAdapter());
                flag = true;
            }
        }
    });
    lv_menu.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            lv_menu.setVisibility(View.GONE);
            //you code for doing Actions
        }
    });