学习了NavigationDrawer 官方Support包中的SlidingMenu版本,练了下手.用到了ListView中item不同的布局
以后会升级加上ViewPager和GridView实现多页面图片切换
代码:
package com.light.study.android;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.light.study.android.MyListAdapter.RowType;
public class EventItem implements Item {
private final String content;
public EventItem(String content){
this.content = content;
}
@Override
public int getViewType() {
return RowType.LIST_ITEM.ordinal();
}
@Override
public View getView(LayoutInflater inflater, View convertView) {
if(convertView==null){
convertView = inflater.inflate(R.layout.list_item, null);
}
TextView tv = (TextView) convertView.findViewById(R.id.list_content);
tv.setText(content);
return convertView;
}
@Override
public boolean isClickable() {
return true;
}
}
package com.light.study.android;
import com.light.study.android.MyListAdapter.RowType;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
public class HeaderItem implements Item {
private String name;
public HeaderItem(String name){
this.name = name;
}
@Override
public int getViewType() {
return RowType.HEAD_ITEM.ordinal();
}
@Override
public View getView(LayoutInflater inflater, View convertView) {
if(convertView==null){
convertView = inflater.inflate(R.layout.head_item, null);
}
TextView tv = (TextView) convertView.findViewById(R.id.headerText);
tv.setText(name);
return convertView;
}
@Override
public boolean isClickable() {
return false;
}
}
package com.light.study.android;
import android.view.LayoutInflater;
import android.view.View;
public interface Item {
public int getViewType();
public boolean isClickable();
public View getView(LayoutInflater inflater, View convertView);
}
package com.light.study.android;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
public class MyListAdapter extends ArrayAdapter<Item> {
private Context mContext;
private LayoutInflater inflater;
private List<Item> list;
public MyListAdapter(Context context, List<Item> list) {
super(context, 0, list);
this.mContext = context;
this.inflater = LayoutInflater.from(mContext);
this.list = list;
}
public enum RowType{
HEAD_ITEM,LIST_ITEM
}
@Override
public boolean isEnabled(int position) {
return this.list.get(position).isClickable();
}
@Override
public int getViewTypeCount() {
return RowType.values().length;
}
@O