gpt4 book ai didi

android - CardView 内的工具栏,用于创建弹出菜单(溢出图标)

转载 作者:IT王子 更新时间:2023-10-28 23:33:49 26 4
gpt4 key购买 nike

我有一个看起来像 google play in a recyclerview with cardview 的列表,而且效果很好。

我需要添加一个弹出菜单(带有溢出图标),如下所示:

这是最好的方法?

我研究发现有2个选项:

1 - 在卡片 View 布局内有一个工具栏。这个解决方案有性能问题吗?

2 - 使用带有溢出图标的 imagebutton 或 imageview,当您单击菜单时会创建。

我需要一个与 >= API 10 兼容的解决方案

谢谢

最佳答案

第一步创建弹出菜单xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/Not_interasted_catugury"
android:orderInCategory="100"
android:title="Never show stories from this category " />

<item
android:id="@+id/No_interasted"
android:orderInCategory="101"
android:title="Not Interested"></item>


</menu>

第 2 步:在您的卡片中制作一个图像按钮

 <ImageButton
android:id="@+id/imageButton"
android:layout_width="20dp"
android:layout_height="30dp"
android:src="@drawable/ic_dots"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:layout_below="@+id/item_detail"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:background="@null"/>

then give a icon from drawable

第 3 步:在您的持有人类中

and set item click listner inside onBindViewHolder

mImageButton= (ImageButton) view.findViewById(R.id.imageButton);
holder.mImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showPopupMenu(holder.mImageButton,position);
}
});

第 4 步:显示弹出菜单并扩展 xml

  private void showPopupMenu(View view,int position) {
// inflate menu
PopupMenu popup = new PopupMenu(view.getContext(),view );
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.popup_menu, popup.getMenu());
popup.setOnMenuItemClickListener(new MyMenuItemClickListener(position));
popup.show();
}

第 5 步:实现 OnMenuItemClickListener

     class MyMenuItemClickListener implements PopupMenu.OnMenuItemClickListener {

private int position;
public MyMenuItemClickListener(int positon) {
this.position=positon;
}

@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()) {

case R.id.Not_interasted_catugury:
String RemoveCategory=mDataSet.get(position).getCategory();
// mDataSet.remove(position);
//notifyItemRemoved(position);
// notifyItemRangeChanged(position,mDataSet.size());

mySharedPreferences.saveStringPrefs(Constants.REMOVE_CTAGURY,RemoveCategory,MainActivity.context);
Toast.makeText(MainActivity.context, "Add to favourite", Toast.LENGTH_SHORT).show();
return true;
case R.id.No_interasted:
mDataSet.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position,mDataSet.size());
Toast.makeText(MainActivity.context, "Done for now", Toast.LENGTH_SHORT).show();
return true;
case R.id.delete:
mySharedPreferences.deletePrefs(Constants.REMOVE_CTAGURY,MainActivity.context);
default:
}
return false;
}
}

关于android - CardView 内的工具栏,用于创建弹出菜单(溢出图标),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34641240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com