在安卓的卡片布局中添加溢出菜单项



嗨,我正在创建带有卡片布局视图的小型安卓应用程序。我有创建卡。现在我想将溢出菜单添加到我的卡片布局中。我可以在我的卡片布局中添加溢出菜单的图像。但是如何在单击它时打开一些溢出菜单。需要一些帮助。谢谢。我不想使用任何库,因为我已经为我的卡片创建了 UI。只想添加溢出菜单。

尝试弹出菜单,例如 http://www.javatpoint.com/android-popup-menu-example

弹出窗口,例如 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

所有这些都将为您工作。但是弹出菜单很好,因为它就像安卓的选项菜单一样工作。

好的,

我刚刚得到了这个项目:)不知道这是否是最好的方法,但我已经做到了:p我只是简单地在相同的布局中创建了一个列表视图,并将其可见性设置为"消失"。

<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 字符串菜单标题[] = { "Facebook 登录", "关于", "设置" };

然后我设置菜单适配器:

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

最新更新