안 드 로 이 드 개발,QQ 메시지 모방 SwipeMenuListView 슬라이딩 삭제 정상 기능 구현[원본 다운로드 첨부]
5378 단어 AndroidSwipeMenuListView
1.먼저 효과 도
2.실현 절차:
1.프로젝트 build.gradle 에 가방 추가
compile 'com.baoyz.swipemenulistview:library:1.3.0'
2.xml 레이아웃 파일
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.baoyz.swipemenulistview.SwipeMenuListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
3.activity 의 실현 은 주석 을 달 았 고 믿 어도 어렵 지 않 기 때문에 설명 할 필요 가 없습니다.
package com.example.administrator.myapplication;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import com.baoyz.swipemenulistview.SwipeMenu;
import com.baoyz.swipemenulistview.SwipeMenuCreator;
import com.baoyz.swipemenulistview.SwipeMenuItem;
import com.baoyz.swipemenulistview.SwipeMenuListView;
public class MainActivity extends AppCompatActivity {
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
/**
* SwipeMenuCreator
*/
SwipeMenuCreator creator = new SwipeMenuCreator() {
@Override
public void create(SwipeMenu menu) {
SwipeMenuItem openItem = new SwipeMenuItem(context);
openItem.setBackground(new ColorDrawable(Color.BLACK));
openItem.setWidth(dp2px(90));
openItem.setTitle(" ");
openItem.setTitleSize(20);
openItem.setTitleColor(Color.WHITE);
menu.addMenuItem(openItem);
SwipeMenuItem deleteItem = new SwipeMenuItem(context);
deleteItem.setBackground(new ColorDrawable(Color.RED));
deleteItem.setWidth(dp2px(90));
deleteItem.setTitle(" ");
deleteItem.setTitleSize(20);
deleteItem.setTitleColor(Color.WHITE);
menu.addMenuItem(deleteItem);
// //
// SwipeMenuItem deleteItem1 = new SwipeMenuItem(context);
// deleteItem1.setBackground(new ColorDrawable(Color.LTGRAY));
// deleteItem1.setWidth(dp2px(90));
// deleteItem1.setIcon(android.R.drawable.ic_delete);
// menu.addMenuItem(deleteItem1);
}
};
/**
*
*/
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) {
//index SwipeMenu SwipeMenuItem , 。
// 0 , :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 : , 。
// true : , 。
return false;
}
});
// ListView SwipeMenu 。
listView.setOnSwipeListener(new SwipeMenuListView.OnSwipeListener() {
@Override
public void onSwipeStart(int pos) {
Log.d(" :" + pos, " ...");
}
@Override
public void onSwipeEnd(int pos) {
Log.d(" :" + pos, " .");
}
});
/**
*
*/
String[] data = new String[15];
for (int i = 0; i < data.length; i++) {
data[i] = " :" + i;
}
/**
* adapter
*/
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);
}
}
이렇게 간단 하 니,큰 신 은 뿌리 지 마 세 요.3.마지막 으로 소스 코드 를 첨부 합 니 다.
여 기 를 클릭 하 세 요.
더 많은 안 드 로 이 드 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.,,,,,,,
본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.