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