我在嵌套的fragement中实现了一个上下文动作模式栏.此片段是视图分页器的一部分,视图分页器也是片段和导航抽屉的一部分.
我的问题:如果片段不再集中,我想关闭上下文操作模式栏.因此,如果我在视图寻呼机中滑动,则应关闭操作模式栏.但是如果我使用onPause()
嵌套片段的方法,则不直接调用该方法.通常它等到我向前滑了两三次......这是一些照片:
在第二张图片中,您可以看到操作模式栏仍然存在.所以我的问题是:我应该在哪种方法中调用我的actionModeBar.finish()
方法,如果我离开片段,直接关闭动作模式栏?
也许片段的代码可以帮助你:
public class EditorFragment extends Fragment {
private static final String KEY_POSITION="position";
ListView listView;
private boolean isMultipleList = false;
private ActionMode acMode;
private int counterChecked = 0;
private ActionMode.Callback modeCallBack = new ActionMode.Callback() {
public boolean onPrepareActionMode(ActionMode mode, Menu menu){
return false;
}
public void onDestroyActionMode(ActionMode mode) {
listView.clearChoices();
for (int i = 0; i < listView.getChildCount(); i++)
listView.setItemChecked(i, false);
listView.post(new Runnable() {
@Override
public void run() {
listView.setChoiceMode(ListView.CHOICE_MODE_NONE);
}
});
isMultipleList = …
Run Code Online (Sandbox Code Playgroud) android android-viewpager android-contextmenu android-actionmode
我是RecyclerView选择库的新手。我准备RecyclerView
选择多个项目,只需单击一下即可。我的问题是所有文章和教程都表明选择过程始于长按。
如何覆盖以单击即可开始选择?谢谢。
我正在使用 implementation 'androidx.recyclerview:recyclerview-selection:1.0.0'
本教程,我尝试过..
在 Android 上,我希望用户能够从列表中选择多行。我读到我可以使用SelectionTracker
aRecyclerView
来启用 list-item selection。
但是所有的代码示例都在 Kotlin 中。SelectionTracker
在Java中有任何例子吗?
我需要有关多/单选择的帮助。在这里找到了我要找的东西,因为它很简单。我正在使用一个GridLayoutManager
我的适配器中有超过 90 个项目,一个CardView
带有 aTextView
和 an ImageView
,同时使用帖子中描述的过程。
当我选择一个或多个项目时,当我向下滚动时,其他项目“似乎”被选中,因为背景会复制,但它们未被选中。尝试将setOnClickListener
, 放入onBindViewHolder
MyViewHolder 类中,并且在它们两个类中我都得到相同的行为。向下滚动时,似乎选择了其他项目。使用notifyItemChanged(position)
并notifyDataSetChanged()
在适配器中,但背景根本没有改变,尽管setSelected
工作正常。我setHasFixedSize(true)
也在 RecyclerView 设置中使用。
在 onBindViewHolder
@Override
public void onBindViewHolder(MyViewHolder myViewHolder, final int position) {
PatternImages currentPattern = patternImages.get(position);
myViewHolder.setData(currentPattern, position);
myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setSelected(!v.isSelected());
if (v.isSelected()) {
v.setBackgroundColor(ContextCompat.getColor(context, R.color.colorPrimaryHighLight));
} else {
v.setBackgroundColor(Color.WHITE);
}
notifyItemChanged(position);
}
});
}
Run Code Online (Sandbox Code Playgroud)
模型
public class …
Run Code Online (Sandbox Code Playgroud) android android-adapter gridlayoutmanager android-recyclerview