ListView侧滑删除
2016-06-17 15:03
323 查看
ListView侧滑删除
效果图效果很好看
代码实现
MessageCenterActivity.java
ListViewAdapter.java
message_center_activity.xml
message_center_item.xml
MessageCenterActivity.java
public class MessageCenterActivity extends Activity implements OnClickListener{ private ListView message_center_lv ; private ListViewAdapter mAdapter ; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.message_center_activity); initView(); } private void initView() { // TODO Auto-generated method stub new TitleManager(this, "消息中心", this); message_center_lv = (ListView) findViewById(R.id.message_center_lv); //设置listview的分割线,顺序不能乱 message_center_lv.setDivider(new ColorDrawable(Color.GRAY)); message_center_lv.setDividerHeight(1); mAdapter = new ListViewAdapter(this); message_center_lv.setAdapter(mAdapter); } @Override public void onClick(View v) { // TODO Auto-generated method stub } }
主界面的布局 message_center_activity.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/bg"> <include layout="@layout/title_manager" /> <ListView android:id="@+id/message_center_lv" android:layout_width="match_parent" android:layout_height="match_parent" ></ListView> </LinearLayout>
ListView的适配器 ListViewAdapter.java
public class ListViewAdapter extends BaseSwipeAdapter { private Context mContext; public ListViewAdapter(Context mContext) { this.mContext = mContext; } @Override public int getCount() { // TODO Auto-generated method stub return 6; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { return position; } @Override public void fillValues(int position, View convertView) { // TODO Auto-generated method stub ImageView imageView = (ImageView) convertView.findViewById(R.id.message_center_item_iv); TextView message_center_item_sk_tv = (TextView)convertView.findViewById(R.id.message_center_item_sk_tv); TextView message_center_item_sksj_tv = (TextView)convertView.findViewById(R.id.message_center_item_sksj_tv); TextView message_center_item_skms_tv = (TextView)convertView.findViewById(R.id.message_center_item_skms_tv); } @Override public View generateView(int position, ViewGroup parent) { // TODO Auto-generated method stub View v = LayoutInflater.from(mContext).inflate(R.layout.message_center_item, null); //SwipeLayout swipeLayout = (SwipeLayout)v.findViewById(getSwipeLayoutResourceId(position)); v.findViewById(R.id.message_center_item_delete).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(mContext, "click delete", Toast.LENGTH_SHORT).show(); } }); return v; } @Override public int getSwipeLayoutResourceId(int position) { // TODO Auto-generated method stub return R.id.message_center_item_swipe; } }
ListView的item的布局 message_center_item.xml
<?xml version="1.0" encoding="utf-8"?> <com.daimajia.swipe.SwipeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:swipe="http://schemas.android.com/apk/res/你的包名" android:id="@+id/message_center_item_swipe" android:layout_width="match_parent" android:layout_height="wrap_content" swipe:leftEdgeSwipeOffset="0dp" swipe:rightEdgeSwipeOffset="0dp" > <LinearLayout android:id="@+id/message_center_item_delete" android:layout_width="70dp" android:layout_height="56dp" android:background="#FF5534" android:gravity="center" android:tag="Bottom3" android:weightSum="10" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="删除" android:textColor="#fff" android:textSize="17sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="56dp" android:background="#37414B" android:orientation="horizontal" > <RelativeLayout android:layout_width="56dp" android:layout_height="56dp" > <ImageView android:id="@+id/message_center_item_iv" android:layout_width="40dip" android:layout_height="40dip" android:layout_centerInParent="true" android:background="@drawable/aaaaaa" android:padding="8dp" /> <TextView android:id="@+id/main_tab_unread_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:background="@drawable/message_textview_bg" android:gravity="center" android:text="12" android:layout_marginTop="3dp" android:layout_marginRight="3dp" android:textColor="@android:color/white" android:textSize="8dp" /> </RelativeLayout> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="8dp" android:paddingLeft="12dp" android:paddingTop="8dp" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" > <TextView android:id="@+id/message_center_item_sk_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="上课时间" android:textColor="@color/whitetext" /> <TextView android:id="@+id/message_center_item_sksj_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="10dip" android:text="2016.6.15" android:textColor="@color/defaulttext" android:textSize="12sp" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" > <TextView android:id="@+id/message_center_item_skms_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你的更衣柜将在七天后过期" android:textColor="@color/defaulttext" android:textSize="12sp" /> </RelativeLayout> </RelativeLayout> </LinearLayout> </com.daimajia.swipe.SwipeLayout>
还有个TextView的shape 的图标(圆形的消息提示)
在drawable 的文件夹下 新建 message_textview_bg
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="#ff0000" /> <padding android:left="2dp" android:top="1dp" android:right="3dp" android:bottom="2dp"/> <stroke android:width="1dp" android:color="@android:color/white" /> </shape>
在attrs里添加属性
<declare-styleable name="SwipeLayout"> <attr name="drag_edge"> <flag name="left" value="1" /> <flag name="right" value="2" /> <flag name="top" value="4" /> <flag name="bottom" value="8" /> </attr> <attr name="leftEdgeSwipeOffset" format="dimension" /> <attr name="rightEdgeSwipeOffset" format="dimension" /> <attr name="topEdgeSwipeOffset" format="dimension" /> <attr name="bottomEdgeSwipeOffset" format="dimension" /> <attr name="show_mode" format="enum"> <enum name="lay_down" value="0" /> <enum name="pull_out" value="1" /> </attr> <attr name="clickToClose" format="boolean" /> </declare-styleable>
用到的jar包,下载地址 http://download.csdn.net/detail/u014120638/9552718
demo下载 点我下载
相关文章推荐
- ListView侧滑效果
- 仿QQ列表侧滑删除的ListView
- Android-listview实现多级树列表(文件夹目录结构和企业级通讯录结构)
- android通过BaseAdapter实现ListView侧滑菜单
- android调试系列--使用ida pro调试so
- Intellij IDEA15:加载resources文件
- 创建oracle数据表
- apk打包时去除无用资源
- 【bzoj3038】上帝造题的七分钟2
- JavaScript强化教程-JS面向对象编程
- sencha Touch项目常见命令
- iOS开发 - 第02篇 - UI进阶 - 14 - 彩票(第一天)
- java技术论文
- Android音视频相关知识
- 【ROS Gazebo专题】四、将Fetch机器人放到Gazebo中进行玩耍
- java技术论文
- 为什么docker创建的网络命名空间在ip netns 不可见
- 机器学习 一 监督学习和无监督学习的区别
- 搜索一个区间:Search for a Range
- JSON 格式数据的定义及操作