Simple use of ListView side sliding menu SwipeMenuListView

Third-party open source project SwipeMenuListView

The link address on github is: https://github.com/baoyongzhang/SwipeMenuListView

rely:

dependencies {
    compile 'com.baoyz.swipemenulistview:library:1.3.0'
}

ps: I imported the latest Studio and reported an error, I don't know what happened

Just import the source file

Put all the source code files in the library/ src/main/java/com/ baoyz/ swipemenulistview directory into your own project code package for use. The source code files and package structure are shown in the figure:

It's very simple to use:

Called directly in the XML layout file

<com.guorentong.learn.listviewcehua.swipemenulistview.SwipeMenuListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Code:

public class MainActivity extends AppCompatActivity {
    private Context context;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        context=this;
        setContentView(R.layout.activity_main);
        //initialization
        SwipeMenuCreator creator = new SwipeMenuCreator() {
            @Override
            public void create(SwipeMenu menu) {
                SwipeMenuItem openItem = new SwipeMenuItem(context);
                //set background
                openItem.setBackground(new ColorDrawable(Color.GREEN));
                //Set the width, it must be set or it will not be displayed
                openItem.setWidth(dp2px(90));
                //set title
                openItem.setTitle("Open");
                //set text size
                openItem.setTitleSize(20);
                //set text color
                openItem.setTitleColor(Color.WHITE);
                //Add to listview
                menu.addMenuItem(openItem);

                SwipeMenuItem deleteItem = new SwipeMenuItem(context);
                deleteItem.setBackground(new ColorDrawable(Color.RED));
                deleteItem.setWidth(dp2px(90));
                //set image
                deleteItem.setIcon(android.R.drawable.ic_delete); 
                menu.addMenuItem(deleteItem);
            }
        };

        SwipeMenuListView listView = (SwipeMenuListView) findViewById(R.id.listView);
        listView.setMenuCreator(creator);
        listView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(int position, SwipeMenu menu,int index) {
                //The value of index is to add the sequential value of SwipeMenuItem to SwipeMenu in turn, similar to the subscript of an array.
                //Starting from 0, the order is: 0, 1, 2, 3...
                switch (index) {
                    case 0:
                        Toast.makeText(context, "打开:"+position,Toast.LENGTH_SHORT).show();
                        break;

                    case 1:
                        Toast.makeText(context, "删除:"+position,Toast.LENGTH_SHORT).show();
                        break;
                }
                // false : Automatically collapse the menu when the user triggers the screen elsewhere.
                // true : Do not change the style of the opened menu, keep it as it is.
                return false;
            }
        });
        // Monitor the user's swipe event on ListView's SwipeMenu.
        listView.setOnSwipeListener(new SwipeMenuListView.OnSwipeListener() {
            @Override
            public void onSwipeStart(int pos) {
                Log.d("Position:" + pos, "Start sliding...");
            }
            @Override
            public void onSwipeEnd(int pos) {
                Log.d("Position:" + pos, "Slippage ends.");
            }
        });
        //Test dataset.
        String[] data = new String[30];
        for (int i = 0; i < data.length; i++) {
            data[i] = "Test data:" + i;
        }
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data);
        listView.setAdapter(adapter);
    }
    public int dp2px(float dipValue) {
        final float scale = this.getResources().getDisplayMetrics().density;
        return (int) (dipValue * scale + 0.5f);
    }
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325528474&siteId=291194637