
/**
* 首页Fragment
*/
public class HomeFragment extends LazyFragment {
public static String TAG = "HomeFragment";
private RelativeLayout item1;
private RelativeLayout item2;
private RelativeLayout item3;
private RelativeLayout item4;
private BannerComponent bannerComponent;
public MyApplication app;
private SwipeMenuListView mListView;
private List<Message> messageList;
private Context context;
@Override
protected void onCreateViewLazy(Bundle savedInstanceState) {
super.onCreateViewLazy(savedInstanceState);
setContentView(R.layout.fragment_home_layout);
app = (MyApplication) getActivity().getApplication();
context=getActivity();
mListView=(SwipeMenuListView)findViewById(R.id.listview);
EventBus.getDefault().register(this);//在要接收消息的页面注册EventBus
initDB();
//ListView展示数据
messageList = findAll(Message.class); //查询数据库所有记录R.layout.message_item
Log.d(TAG, "onCreateViewLazy: "+messageList);
MessageAdapter messageAdapter = new MessageAdapter(app,R.layout.message_item,messageList);
mListView.setAdapter(messageAdapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(app, WebViewActivity.class);//跳转到webview
startActivity(intent);
Message message = messageList.get(position);
String htmlUrl = message.getHtmlUrl();
EventBus.getDefault().postSticky(new Message(htmlUrl));//粘性事件,在注册后发送
}
});
/**
* 创建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(200));
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(200));//90
deleteItem.setTitle("删除");
deleteItem.setTitleSize(20);//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);
}
};
/**
* 实例化
*/
mListView.setMenuCreator(creator);
/**
* 监听事件
*/
mListView.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侧滑事件。
mListView.setOnSwipeListener(new SwipeMenuListView.OnSwipeListener() {
@Override
public void onSwipeStart(int pos) {
Log.d("位置:" + pos, "开始侧滑...");
}
@Override
public void onSwipeEnd(int pos) {
Log.d("位置:" + pos, "侧滑结束.");
}
});
布局代码:
<?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" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="261dp">
<android.support.v4.view.ViewPager
android:id="@+id/banner_viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.shizhefei.view.indicator.FixedIndicatorView
android:id="@+id/banner_indicator"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_gravity="right|bottom" />
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_height="130dp">
<RelativeLayout
android:id="@+id/item1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<ImageView
android:id="@+id/iv_item1"
android:layout_width="60dip"
android:layout_height="60dip"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_home_man" />
<TextView
android:id="@+id/tv_item1"
style="@style/style_home_item_tv"
android:layout_below="@+id/iv_item1"
android:text="热门商品" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/item2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<ImageView
android:id="@+id/iv_item2"
android:layout_width="60dip"
android:layout_height="60dip"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_home_weather" />
<TextView
android:id="@+id/tv_item2"
style="@style/style_home_item_tv"
android:layout_below="@+id/iv_item2"
android:text="气象站" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/item3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<ImageView
android:id="@+id/iv_item3"
android:layout_width="60dip"
android:layout_height="60dip"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_home_fav" />
<TextView
android:id="@+id/tv_item3"
style="@style/style_home_item_tv"
android:layout_below="@+id/iv_item3"
android:text="我的收藏" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/item4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<ImageView
android:id="@+id/iv_item4"
android:layout_width="60dip"
android:layout_height="60dip"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_home_points" />
<TextView
android:id="@+id/tv_item4"
style="@style/style_home_item_tv"
android:layout_below="@+id/iv_item4"
android:text="每日签到" />
</RelativeLayout>
</LinearLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<com.baoyz.swipemenulistview.SwipeMenuListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</FrameLayout>
</LinearLayout>
<?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">
<ImageView
android:id="@+id/msg_image"
android:layout_width="43dp"
android:layout_height="43dp"
android:src="@drawable/ic_launcher"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="10dp">
<TextView
android:id="@+id/msg_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"/>
<TextView
android:id="@+id/msg_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"/>
</LinearLayout>
</LinearLayout>