【问题标题】:Adding overflow menu item in cardlayout of android [closed]在android的卡片布局中添加溢出菜单项[关闭]
【发布时间】:2014-12-12 04:42:15
【问题描述】:

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

【问题讨论】:

  • 这应该重新打开。这是一个非常具体的功能的有效问题:如何向卡片添加溢出菜单。我在这里有这个确切问题的答案:stackoverflow.com/a/35166377/456568

标签: android menu cardlayout


【解决方案1】:

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

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

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

所有这些都将为您工作。但是弹出菜单很好,因为它的工作原理类似于 android 的 optionsMenu。

【讨论】:

    【解决方案2】:

    好的,我刚拿到那个项目 :) 不知道这是否是最好的方法,但我已经做到了: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
            }
        });
    

    【讨论】:

    • 嗨 Kiturk 感谢您快速重播。但我已经创建了卡片视图。只想要溢出菜单,如带有 3 个点的操作栏中。以同样的方式在谷歌游戏卡中显示谷歌。
    • 哦,好吧,我以前做过......让我看看,很快就会回复你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 2013-12-08
    相关资源
    最近更新 更多