这个可以有popupWindow组成,下拉列表是一个listView,listView中的每一项是有三部分组成,用户头像,数据源,信息
当点击右面那个倒立的三角形时就会出现下拉列表,具体实现代码如下:
package zidingyiview.shangguigu.xiala;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
/**
*
*/
public class MainActivity1 extends AppCompatActivity {
private EditText et_bianjia;
private ImageButton down_arrow;
private PopupWindow popupWindow;
private ListView lv;
private List<String> data;
private myAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
et_bianjia = (EditText) findViewById(R.id.et_bianjia);
down_arrow = (ImageButton) findViewById(R.id.down_arrow);
lv = new ListView(MainActivity1.this);
lv.setBackgroundColor(0xffffffff);
down_arrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (popupWindow == null) {
// popupWindow = new PopupWindow(lv, et_bianjia.getWidth(), 140);
popupWindow = new PopupWindow(MainActivity1.this);
int height = DensityUtil.dip2px(MainActivity1.this,200);
popupWindow.setWidth(et_bianjia.getWidth());
popupWindow.setHeight(height);
popupWindow.setContentView(lv);
popupWindow.setFocusable(true);
}
popupWindow.showAsDropDown(et_bianjia, 0, 0);
}
});
data = new ArrayList<>();
for (int i=0;i<100;i++) {
data.add(i+"--aaaaaa--"+i);
}
adapter = new myAdapter();
lv.setAdapter(adapter);
}
private class myAdapter extends BaseAdapter {
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = View.inflate(MainActivity1.this,R.layout.listliew,null);
}
final TextView tv = (TextView) convertView.findViewById(R.id.tv_date);
ImageButton delete = (ImageButton) convertView.findViewById(R.id.delete);
tv.setText(data.get(position));
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
data.remove(position);
adapter.notifyDataSetChanged();
}
});
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
et_bianjia.setText(tv.getText().toString());
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
popupWindow = null;
}
}
});
return convertView;
}
}
}