我正在使用Bayoz Swipe菜单库在我的应用中添加滑动菜单。 最初在渲染列表滑动菜单后如果用户滚动列表未打开,然后滑动,则打开滑动菜单。 以下是我的代码 -
<com.baoyz.swipemenulistview.SwipeMenuListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"/>
下面是onCreate Code -
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items);
listView.setAdapter(adapter);
initSwipeMenu();
和初始滑动菜单的代码 -
private void initSwipeMenu(){
SwipeMenuCreator creator = new SwipeMenuCreator() {
@Override
public void create(SwipeMenu menu) {
//create an action that will be showed on swiping an item in the list
SwipeMenuItem item1 = new SwipeMenuItem(
getApplicationContext());
item1.setBackground(new ColorDrawable(Color.DKGRAY));
// set width of an option (px)
item1.setWidth(200);
item1.setTitle("Action 1");
item1.setTitleSize(18);
item1.setTitleColor(Color.WHITE);
menu.addMenuItem(item1);
SwipeMenuItem item2 = new SwipeMenuItem(
getApplicationContext());
// set item background
item2.setBackground(new ColorDrawable(Color.RED));
item2.setWidth(200);
item2.setTitle("Action 2");
item2.setTitleSize(18);
item2.setTitleColor(Color.WHITE);
menu.addMenuItem(item2);
}
};
//set MenuCreator
listView.setMenuCreator(creator);
// set SwipeListener
listView.setOnSwipeListener(new SwipeMenuListView.OnSwipeListener() {
@Override
public void onSwipeStart(int position) {
// swipe start
}
@Override
public void onSwipeEnd(int position) {
// swipe end
}
});
listView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
String value = adapter.getItem(position);
switch (index) {
case 0:
Toast.makeText(getApplicationContext(), "Action 1 for "+ value , Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(getApplicationContext(), "Action 2 for "+ value , Toast.LENGTH_SHORT).show();
break;
}
return false;
}});
adapter.notifyDataSetChanged();
}
代码错误,请提供反馈。
TIA
答案 0 :(得分:0)
这似乎为时已晚,但我找到了解决这类问题的方法。在我的情况下,SwipeMenuListView没有关闭项目,我必须滚动或触摸才能进行滑动。所以我打电话给
在刷卡之后或在SwipeMenuListView中设置适配器之前listView.smoothCloseMenu()
解决了问题。 希望这能帮助您或下一位观众解决这个问题。