popwindow中的listview怎么实现下拉刷新

解决方案 »

  1.   

    google  popupwindow
    google 下拉刷新然后自己组合
      

  2.   

    package com.npt.caronline;
    import java.util.ArrayList;
    import java.util.List;import android.content.Context;
    import android.graphics.drawable.BitmapDrawable;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.BaseAdapter;
    import android.widget.ListView;
    import android.widget.PopupWindow;
    import android.widget.TextView;
    public class PopMenu {
    private ArrayList<String> itemList;
    private Context context;
    private PopupWindow popupWindow;
    private ListView listView; // private OnItemClickListener listener; public PopMenu(Context context) {
    // TODO Auto-generated constructor stub
    this.context = context; itemList = new ArrayList<String>(5); View view = LayoutInflater.from(context)
    .inflate(R.layout.popmenu, null); // 设置 listview
    listView = (ListView) view.findViewById(R.id.listView);
    listView.setAdapter(new PopAdapter());
    listView.setFocusableInTouchMode(true);
    listView.setFocusable(true); popupWindow = new PopupWindow(view, 100, LayoutParams.WRAP_CONTENT);
    popupWindow = new PopupWindow(view, context.getResources()
    .getDimensionPixelSize(R.dimen.popmenu_width),
    LayoutParams.WRAP_CONTENT); // 这个是为了点击“返回Back”也能使其消失,并且并不会影响你的背景(很神奇的)
    popupWindow.setBackgroundDrawable(new BitmapDrawable());
    } // 设置菜单项点击监听器
    public void setOnItemClickListener(OnItemClickListener listener) {
    // this.listener = listener;
    listView.setOnItemClickListener(listener);
    } // 批量添加菜单项
    public void addItems(List<String> names) {
    for (String s : names)
    itemList.add(s);
    } // 单个添加菜单项
    public void addItem(String item) {
    itemList.add(item);
    } // 下拉式 弹出 pop菜单 parent 右下角
    public void showAsDropDown(View parent) {
    popupWindow.showAsDropDown(parent,
    10,
    // 保证尺寸是根据屏幕像素密度来的
    context.getResources().getDimensionPixelSize(
    R.dimen.popmenu_yoff)); // 使其聚集
    popupWindow.setFocusable(true);
    // 设置允许在外点击消失
    popupWindow.setOutsideTouchable(true);
    // 刷新状态
    popupWindow.update();
    } // 隐藏菜单
    public void dismiss() {
    popupWindow.dismiss();
    } // 适配器
    private final class PopAdapter extends BaseAdapter { @Override
    public int getCount() {
    // TODO Auto-generated method stub
    return itemList.size();
    } @Override
    public Object getItem(int position) {
    // TODO Auto-generated method stub
    return itemList.get(position);
    } @Override
    public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
    } @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ViewHolder holder;
    if (convertView == null) {
    convertView = LayoutInflater.from(context).inflate(
    R.layout.pomenu_item, null);
    holder = new ViewHolder(); convertView.setTag(holder); holder.groupItem = (TextView) convertView
    .findViewById(R.id.name); } else {
    holder = (ViewHolder) convertView.getTag();
    } holder.groupItem.setText(itemList.get(position)); return convertView;
    } private final class ViewHolder {
    TextView groupItem;
    }
    }
    }
      

  3.   

    下拉刷新是在触发TOuch事件时不停的控制HeaderView的位置。事件写在ListView中,在popupWindow中与在activity中一样的做法。只不过可能有位置错开问题。
    我刚做过这个功能,ProgressBar在泡泡窗口不大好定位
      

  4.   

    ProgressBar在泡泡窗口不大好定位 
    =============
    对啊,就是这个问题,老是null指针啊,我回家弄去~还要搞成可以批量删除的listview